如何从laravel的关系中获取对象

时间:2018-11-21 07:14:57

标签: laravel laravel-5 eloquent relationship eloquent--relationship

我有3种模式:课程,小组,学生

我想给Course提供2种关系的游戏。

例如:我要第一门课程的学生(id = 1)

该课程有许多组(5,6,8),每组有一个(36,38)或许多(35,37)学生

如何使所有课程的学生具有良好的口才和关怀

2 个答案:

答案 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的选择会更好。