Связь Laravel с 4 таблицами

#laravel #relationship

#laravel #связь

Вопрос:

У меня есть 4 таблицы:

пользователи команды местоположения users_teams

моя таблица команд связана с местоположениями. (в нем есть поле location_id) пользователи и команды имеют отношения belongsToMany с users_teams. пользователи не имеют прямой связи с местоположениями.

Но мне нужно найти тренеров в этом месте. Это означает; «найдите мне всех тренеров; которые принадлежат командам этого местоположения»

Но не смог переместить ни одного, чтобы сделать это. Как это может быть возможно?

как мои «тренеры» функционируют в моей модели «Местоположения»?

Комментарии:

1. Не могли бы вы опубликовать какой-нибудь код?

Ответ №1:

Если ваши отношения настроены правильно, и предполагается, что у вас есть столбец enum с именем type в coach качестве возможного значения, вы должны быть в состоянии сделать что-то вроде этого:

 $coaches = User::where('type', 'coach')
    ->whereHas('teams.locations', function($query)
    {
        $query->where('name', 'some place');
    })->get();