У меня есть модель Пользователи и в нем у меня есть следующие отношенияПолучение сводных данных таблиц
public function group()
{
return $this->belongsToMany('App\Group', 'users_user_groups')->withPivot('user_id', 'group_id');
}
Я также установить обратный в рамках модели группы. После завершения У меня есть таблица с данными users_user_group как так
+------+-------------------+----------+
| id | user_id | group_id |
+------+-------------------+----------+
| 755 | 1 | 1 |
| 756 | 1 | 2 |
| 757 | 1 | 3 |
| 758 | 1 | 4 |
| 759 | 1 | 5 |
| 760 | 1 | 6 |
| 761 | 1 | 7 |
| 762 | 1 | 8 |
| 763 | 1 | 9 |
| 764 | 1 | 10 |
| 765 | 2 | 11 |
| 766 | 2 | 7 |
| 767 | 2 | 10 |
| 768 | 3 | 12 |
| 769 | 3 | 13 |
Так что я знаю, что данные вставляются должным образом. Теперь в одном из моих контроллеров я пытаюсь получить всех пользователей, которые являются частью группы admin, у которой есть group_id из 1. Так что я делаю $ users = User :: where ('active', '=', правда) -> получить();
foreach ($users as $user) {
if($user->group()->where('groupName', 'admin')) {
$groupArray[] = $user;
}
}
По какой-то причине каждый пользователь добавляется в этот массив, где должны добавляться только администраторы.
Я просто искал советы относительно того, что я делаю неправильно? Мне нужно каким-то образом связать имя_группы с groupId?
Благодаря
Первое предложение дает мне аргумент 2, переданный в Illuminate \ Database \ Eloquent \ Builder :: whereHas() должен быть экземпляром Closure, integer given. Кроме того, что произойдет, если я не знаю groupId, только groupName? Спасибо –
'group_id' его просто условие, которое вы хотите применить к группе. –