我正在使用eloquent来检索模型。
状态
假设我有 GROUP,PERSON,HOBBY 的模型。
所有这些都连接在1:n
GROUP 1---n PERSON
PERSON 1---n HOBBY
方法可以是检索模型:
$group = Group::find(123)->with('persons.hobbies')->get();
要在我的模板中显示模型,我会将我的组发送到模板。然后我会在那个小组中迭代我的人,也在我的爱好上,例如显示 爱好的名字。
问题
因为这个模型非常(!)琐碎。我想知道是否有可能(无用或无用)直接检索(而不是嵌套)所有的爱好(作为一个Eloquent模型的数组)。但我知道的唯一一件事就是集团(即groupId)在开始时?
提前致谢
答案 0 :(得分:1)
这是不可能的,因为group
和person
之间的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);