laravel eloquent检索关系的一部分

时间:2013-10-17 08:08:00

标签: php laravel laravel-4 eloquent

我正在使用eloquent来检索模型。

状态

假设我有 GROUP,PERSON,HOBBY 的模型。

所有这些都连接在1:n

GROUP 1---n PERSON

PERSON 1---n HOBBY

方法可以是检索模型:

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

要在我的模板中显示模型,我会将我的组发送到模板。然后我会在那个小组中迭代我的人,也在我的爱好上,例如显示 爱好的名字。

问题

因为这个模型非常(!)琐碎。我想知道是否有可能(无用或无用)直接检索(而不是嵌套)所有的爱好(作为一个Eloquent模型的数组)。但我知道的唯一一件事就是集团(即groupId)在开始时?

提前致谢

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为groupperson之间的1 --- n关系可以返回给定person的许多group_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);