使用Eloquent为所有用户提供一个或多个角色

时间:2017-05-15 02:48:40

标签: laravel-5 eloquent

我正在尝试显示一个角色为' admin'的用户列表。或者'网站管理员'。我只能在指定一个角色时才能使它工作,但是当我尝试通过添加orWhere子句来获取它时,它会返回所有用户而不管他们的角色。

$admins = User::whereHas('roles', function($q) {
    $q->where('name', 'Admin');
})->paginate(25);

我尝试过以下操作,但它会返回所有角色的所有用户。

$admins = User::whereHas('roles', function($q) {
    $q->where('name', 'Admin')
        ->orWhere('name', 'Webmaster');
})->paginate(25);

有没有人对如何做到这一点有任何想法?作为参考,我有一个users表,一个角色表和一个role_user表,它是从角色到用户的多对多表。

1 个答案:

答案 0 :(得分:2)

试试这个,

$admins = User::whereHas('roles', function($q) {
    $q->whereIn('name', ['Admin', 'Webmaster'] );
})->paginate(25);