【问题标题】:Get all users with one role or another using Eloquent使用 Eloquent 获取具有一个或另一个角色的所有用户
【发布时间】:2017-10-13 17:34:34
【问题描述】:

我正在尝试显示具有“管理员”或“网站管理员”角色的用户列表。当我只指定一个角色时,我可以让它工作,但是当我尝试通过添加 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);

有人对如何实现这一点有任何想法吗?作为参考,我有一个用户表、一个角色表和一个从角色到用户的多对多的 role_user 表。

【问题讨论】:

    标签: laravel-5 eloquent


    【解决方案1】:

    试试这个,

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

    【讨论】:

    • 这不是在查询roles 关系。
    • 这给了我想要的东西。感谢您的帮助,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多