我使用委托包在Laravel 5中制作了一个应用程序:
https://github.com/Zizaco/entrust/tree/laravel-5
我的查询已经运行良好,可以获得与搜索字符串匹配的分页用户:
User::like($search)->skip($offset)->take($limit)->get()
通过委托,我有一个名为admin的角色,那么我将如何调整此查询,以便它只返回具有admin角色的用户。这没有用:
User::like($search)->hasRole('admin)->skip($offset)->take($limit)->get()
答案 0 :(得分:2)
您可以尝试这样的事情:
User::whereHas('roles', function($q) {
$q->where('name', 'admin');
})->skip($offset)->take($limit)->get();
我不认为 hasRole()可以用作查询范围,但我可能错了。我相信它适用于单个用户检查,例如:
if (Auth::user()->hasRole('admin')) {
// Logged in user has the admin role...
}
答案 1 :(得分:0)
我也在我的应用程序中使用了委托(laravel 4.2)得到了逻辑并重写了它,因为它正确地满足了我的需要。为了更好地理解,我将名称Role更改为Group。
但在你的情况下;
角色可能有很多用户 角色可以拥有许多权限
用户属于角色
然后你可以
$role = Role::where("name", "admin")->first();
$role->users()->get();
会为您提供属于admin角色的所有用户..
不:这是laravel 4.2。