我试图找出是否有一种简单的方法来获取所有具有一个角色或另一个角色的用户。
在官方文件的空间Laravel许可,我找不到这个。
我试着这样做,但我得到了所有的用户。
User::role(['Individual', 'Organisation', 'Venue'])->get();
我也是这样尝试的:
User::whereHas("roles", function($q) {
$q->orWhere(function ($query) {
$query->where("name", "Individual")
->where("name", "Venue")
->where("name", "Organisation");
});
})->get();
在Db roles表中,我有:
3条答案
按热度按时间sirbozc51#
您可以尝试
whereIn()
到roles()参考链接https://laravel.com/docs/8.x/queries#additional-where-clauses尝试
id
以获得更好的搜索效果,因为它是主键注意此处
name
应与数据库中的角色名称字符串完全匹配stszievb2#
@Apokryfos的意思是你把它改成这样
如果您希望用户拥有所有角色而不是其中一个角色
ovfsdjhp3#
获取分配角色的所有用户
$users_with_roles =用户::拥有('角色')-〉get();
获取未分配任何角色的所有用户
$users_without_any_roles =用户::没有('角色')-〉get();