У меня есть 3 таблицы: Project
, Group
, User
и одна сводная таблица отношений: project_group
с colmuns:
id
project_id
group_id
и поворот поле user_id
Я знаю, как принять все группы и проекты:
Project::find(1)->groups()->get();
groups()
это функция ownToMany внутри модели проекта.
Проблема в том, что я не знаю, как получить всех пользователей для конкретного проекта. Мне нужно получить проект и все имена пользователей и идентификаторы для этого проекта, какое-нибудь решение для этого?
заранее спасибо
Вы можете примерить Project.php
модель добавления отношения поворота
public function users() {
return $this->hasMany(App\User::class, 'project_group');
}
Однако это может вводить в заблуждение, поскольку project_group
должна быть сводная таблица между project
стол и group
Таблица. user_id
не принадлежит там.
Создайте вторую сводную таблицу с именем group_user
с group_id
, user_id
, Тогда вы можете использовать это на своем Group.php
модель:
public function users() {
return $this->hasMany(App\User::class, 'group_user');
}
Примером может быть:
$project = Project::find(1);
foreach($project->groups as $group) {
$users = $group->users; // Now you should have access to all the users for each group
}
Других решений пока нет …