是否可以在Laravel中选择具有管理员角色或主持人的用户?

时间:2015-03-18 21:02:57

标签: php laravel eloquent

我需要选择具有管理员或管理员角色的所有用户。但是,当我尝试使用此代码$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
                                    )

                            )
                    )

            )

    )

有没有办法让一个阵列中的所有用户都拥有角色admin或版主?

1 个答案:

答案 0 :(得分:1)

呀。由于您要根据用户的角色寻找用户,请从用户处开始。

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