как получить объекты из отношения в Laravel - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть 3 модели: курс, группа, студент

Я хочу давать игры с курса с 2 отношениями.

для примера: я хочу, чтобы студенты курса 1 (id = 1)

В курсе есть много групп (5,6,8), и в каждой группе есть один (36,38) или много (35,37) студентов

Как получить всех студентов курса сотношения и красноречивые

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Если вам нужны только игры:

$games = Game::with(['some_relation_name', 'some_relation_name_2'])
    ->whereHas('group', function($query) {
        $query->whereHas('tournament', function($query) {
            $query->where('id', 1)
        });
    })
    ->get();

Если вам нужен турнир с играми, вариант Анара лучше.

0 голосов
/ 21 ноября 2018

Вы можете использовать hasManyThrough

 public function games()
 {
    return $this->hasManyThrough(Tournament::class, Group::class);
 }

Отношение «имеет много сквозных» обеспечивает удобный ярлык для доступа к удаленным отношениям через промежуточное отношение.Например, модель Country может иметь много моделей Post через модель промежуточного пользователя.В этом примере вы можете легко собрать все сообщения в блогах для данной страны.

https://laravel.com/docs/5.7/eloquent-relationships#has-many-through

...