use*_*278 1 php laravel eloquent laravel-5
我正在使用Laravel Entrust Package https://github.com/Zizaco/entrust 我想让所有用户拥有这样的角色
name | role
Ryan | admin
Megan | admin
Run Code Online (Sandbox Code Playgroud)
表结构
users
id,name,email,password
roles,
id,name
role_user (pivot table)
id,user_id
Run Code Online (Sandbox Code Playgroud)
我尝试了这个但是没有用
$users = User::with('roles')->where('roles.name','=','admin')->get();
Run Code Online (Sandbox Code Playgroud)
错误
Column not found: 1054 Unknown column 'roles.name' in 'where clause' (SQL: select * from users where roles.name = admin)
Run Code Online (Sandbox Code Playgroud)
我既不想使用RAW查询也不想使用它
$users = DB::table('users')->select('users.name as username', 'role.name as role')->with('roles')->join('roles', 'roles.user_id', '=', 'users.id')->where('roles.name', 'admin')->get();
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
使用 whereHas
$users = User::whereHas('roles', function($q)
{
$q->where('name', 'admin');
})->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3637 次 |
| 最近记录: |