Использование JOIN внутри отношения - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть три таблицы: турниры, участники, пользователи. Структура:

Турниры:

-Id
-Description
-Date

Участники

-Id
-Id_tourn
-Id_user

Пользователи

-Id
-Name

В моем шаблоне клинка мне нужна вся информация из таблицы Турниров и информация о пользователе, который является участником этого турнира.

Я создал связь между турнирами и пользовательскими моделями.

UPDATE: Модель турниров:

public function users() {
   return $this->belongsToMany('App\User', 'Participants', 'Id_tourn', 'Id_user');
}

public function getTournaments()
{
    return $this->with('users')->get();
}

Турнирный контроллер:

public function show()
{
    $tourns = new Tournaments();

    $tournaments = $tourns->getTournaments();
    return $tournaments;
}

но когда я пытаюсь $tournament->users в цикле foreach, он возвращает 0 результатов

Большое спасибо!

1 Ответ

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

Похоже, вы используете отношение «один ко многим» в случае «многие ко многим», здесь - документация отношения «многие ко многим». Вам нужно установить такие отношения:

public function users() {
    return $this->belongsToMany('App\User', 'Participants', 'Id_tourn', 'Id_user');
}

Таким образом, вы можете получить доступ к таким пользователям:

$tournament->users
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...