2013-10-17 77 views
0

我在使用雄辩的应用程序来检索模型。laravel雄辩地检索部分关系

状态

让我们假设我有一个模型团体,个人,HOBBY

所有这些连接1:N

GROUP 1---n PERSON 

PERSON 1---n HOBBY 

的方法可以是检索模式:

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

要显示在我的模板我会开除我的团到模板的模型。然后,我会遍历该组中的我的人员以及我的兴趣爱好,例如显示兴趣爱好的名称 。

问题

由于这种模式是非常(!)微不足道。我想知道是否可能(无用或不可用)直接(不嵌套)所有业余爱好(作为一组Eloquent模型)。但是我仍然唯一知道的就是集团(即groupId)在开始时?

在此先感谢

回答

1

这是不可能的,因为1间---ñgroupperson之间的关系可能对于一个给定group_id返回许多person对象。不可能访问某个集合的兴趣列表。

如果你真的想'直接'这样做,我的建议是你使用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); 
+0

THX的答案 – whereismydipp