0

モデルを取得するために雄弁を使用してアプリケーションに取り組んでいます。

状態

GROUP,PERSON,HOBBYのモデルがあるとします。

これらはすべて 1:n で接続されています

GROUP 1---n PERSON

PERSON 1---n HOBBY

アプローチは、モデルを取得することです。

$group = Group::find(123)->with('persons.hobbies')->get();

テンプレートにモデルを表示するには、テンプレートに対してグループを起動します。次に、そのグループの人物と趣味を繰り返し処理して、たとえば趣味の名前を表示します。

質問

このモデルは非常に (!) 些細なことです。すべての趣味を (Eloquent モデルの配列として) 直接 (ネストされていない) 取得できるかどうか (役に立たないかどうか) を知りたいです。しかし、まだ私が知っている唯一のことは、最初のグループ (つまり、groupId) ですか?

前もって感謝します

4

1 に答える 1

1

groupとの間の 1---n 関係は、指定された に対して多くのオブジェクトをperson返す可能性があるため、これは不可能です。コレクションである何かの趣味のリストにアクセスすることはできません。persongroup_id

これを「直接」行いたい場合は、Fluent を使用することをお勧めします。Eloquent の代わりにクエリ ビルダーを使用して、テーブルを結合します。

何かのようなもの:

DB::select('hobby.*')
  ->from('hobby')
  ->join('group', 'group.id = person.group_id')
  ->join('person', 'person.hobby_id = hobby.id')
  ->where('group.id', $group_id);
于 2013-10-17T09:10:20.983 に答える