我正在使用雄辩的应用程序来检索模型。
地位
假设我有一个GROUP,PERSON,HOBBY的模型。
所有这些都是1:n连接的
GROUP 1---n PERSON
PERSON 1---n HOBBY
方法可能是检索模型:
$group = Group::find(123)->with('persons.hobbies')->get();
为了在我的模板中显示模型,我会将我的组发送到模板。然后我会遍历我在那个组中的人以及我的爱好,例如显示爱好的名称。
问题
因为这个模型非常(!)微不足道。我想知道是否有可能(无用或无用)直接检索(而不是嵌套)所有爱好(作为雄辩模型的数组)。但我唯一知道的是开头的组(即组 ID)?
提前致谢
这
是不可能的,因为group
和person
之间的 1---n 关系可以为给定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);