Iユーザーのモデルを持っており、その中に、私は次の関係、私はまた、グループ内のモデルの逆を設定している取得ピボットテーブルのデータが
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 |
私はデータが正しく挿入されていることを知っています。私のコントローラの1つでは、group_idが1のadminグループに属するすべてのユーザーを取得しようとしています。だから今行っています $ users = User :: where( 'active'、 '=' true) - > get();
foreach ($users as $user) {
if($user->group()->where('groupName', 'admin')) {
$groupArray[] = $user;
}
}
しかし何らかの理由で、すべてのユーザーがこのアレイに追加され、管理者のみが追加される必要があります。
私は間違っていることについてアドバイスを探していましたか?どうにかしてgroupNameをgroupIdにリンクする必要がありますか?
おかげ
最初の提案は私に、Illuminate \ Database \ Eloquent \ Builder ::に渡された引数2を与えます。ここで、HAS()はClosureのインスタンスでなければなりません。また、groupId、groupNameだけがわからないとどうなりますか?ありがとう –
'group_id'あなたがグループに適用したい条件です。 –