是否可以 select 用户在 Laravel 中具有管理员角色或管理员角色?

Is it possible to select users with admin role or moderator in Laravel?

我需要 select 所有具有管理员或版主角色的用户。但是当我尝试这段代码时 $user = Role::with('users')->where('name', '=', 'admin')->orWhere('name', '=', 'moderator')->get(); 它按这样的角色对它们进行排序:

    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => admin
                [users] => Array
                    (
                        [0] => Array
                            (
                                [id] => 1
                                [name] => admin
                                [pivot] => Array
                                    (
                                        [role_id] => 1
                                        [user_id] => 1
                                    )

                            )

                    )

            )

        [1] => Array
            (
                [id] => 2
                [name] => moderator
                [users] => Array
                    (
                        [0] => Array
                            (
                                [id] => 2
                                [name] => Moderator
                                [pivot] => Array
                                    (
                                        [role_id] => 2
                                        [user_id] => 2
                                    )

                            )
                    )

            )

    )

有没有办法让所有用户都在一个数组中,角色为管理员或版主?

是的。由于您是根据角色寻找用户,因此请从用户开始。

$users = User::with('roles')->whereHas('roles', function($q)
{
    $q->whereIn('name', ['admin', 'moderator']);
})->get();