我有3种模式:课程,小组,学生
我想给Course提供2种关系的游戏。
例如:我要第一门课程的学生(id = 1)
该课程有许多组(5,6,8),每组有一个(36,38)或许多(35,37)学生
如何使所有课程的学生具有良好的口才和关怀
答案 0 :(得分:1)
您可以使用 hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
“具有多次通过”关系为通过中间关系访问远处的关系提供了方便的快捷方式。例如,一个国家(地区)模型可能通过一个中间用户模型具有许多邮政模型。在此示例中,您可以轻松地收集给定国家/地区的所有博客文章。
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
答案 1 :(得分:0)
如果您只需要游戏:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
如果您需要与游戏比赛,那么Anar的选择会更好。