2017-12-21 4 views
0

私はEloquentで作業できるLaravelから来ています。 Eloquentでは、次のようなことができます:「場所」でhasManyを続ける

$this->hasOne('App\Models\Member', 'family_id')->where('relation', '=', 1); 

広い範囲内の特定のメンバーを取得するためです。

Sequelizeでも同じことが可能ですか?私は

Family.hasMany(models.Member); 

または

Family.hasOne(models.Member); 

を行うことができますが、私は制約を追加できる場所私は表示されません参照してください。何か案は?

+0

あなたが与えた 'hasMany'と' hasOne'の例は、テーブル間のアソシエーションを設定することです。検索クエリを実行しようとしていますか?もしそうなら、 'Family.findOne({})'や 'Family.findAll({})'検索クエリを使うことができ、これらのクエリの中に 'where'制約を追加することができます。もっと詳しくはこちらをご覧ください:http://docs.sequelizejs.com/manual/tutorial/querying.html – MonkeyOnARock

+0

毎回各メンバーを検索する必要がないように、タイプを考慮した関係を作成しようとしていました。私は特定のものを探していた。私は "mainMember"を作成して、制約のあるメンバを自動的に返すようにしたかったのです。 – ackerchez

答えて

0

これを達成するためです。 where句はコントローラに移動され、モデルでは事前に定義されていません。これは次のようになります:

models.Family.findAll({ 
    include:[ 
     { 
      model : models.Member, 
      where: {relation : 1} 
     }, 
    ] 
}) 
関連する問題