如何检索与多个角色关联的用户,例如[“ role1”,“ role2” ...]

时间:2019-04-14 08:11:27

标签: php laravel eloquent roles

我具有用户和角色关系,属于belongsToMany。 我现在想让所有用户按名称具有多个角色。

我尝试过,

 $role_ids = [1,2];
 $users = User::whereHas('roles' , function ($query) use($role_ids) {
            $query->whereIn('roles.id', $role_ids);
        })->get();

但是这种方法为我提供了与这两个角色或一个角色相关联的用户,这不是我期望的

1 个答案:

答案 0 :(得分:0)

您必须为此添加多个whereHas

$role_ids = [1,2];
$users = User::with('roles');
foreach($role_ids as $role){
    $users->whereHas('roles', function($q) use ($role){
        $q->where('roles.id', $role);
    });
}
$users = $users->get();