我有3个表,代表User
和Group
以及GroupUser
之间的多对多(belongsToMany)关系作为数据透视表。我想要做的只是显示所有不 <{1}}成员的用户。
group_id 2
我的解决方案 在User和GroupUser之间创建belongsTo(hasMany)关系,以便GroupUser属于Too User,然后急切加载所有不属于group_id 2的用户。
我如何在我的控制器中编写代码并在刀片中查看?
在我使用WhereNotIn条件之前,我试图简单地加载所有用户。到目前为止,我有这个,但由于某种原因,它只读取group_user表中的最后一行。
User model GroupUser model (pivot table) Group model
ID|name ID|user_id|group_id ID|group_name
1 |Mark 1| 1 |2 1| the sharks
2 |Sam 2| 3 |1 2| the tigers
3 |Sally 3| 2 |3 3| the whales
4 |Tim 4| 4 |2
上面代码的结果是Tim
答案 0 :(得分:0)
这将显示不属于group_id = 2的所有用户。
控制器或存储库:
$group_id = 2;
$users = User::whereHas('groups',function($query) use($group_id) {
$query->where('id','!=',$group_id);
})->get();
return view('your_view',compact('users')); //this will pass the $users collection to the view.
查看(使用刀片):
@foreach($users as $user)
{{$user->name}}
{{$user->etc}}
@endforeach