我有两个表,其中用户表与角色表具有一对一关系
这是我的用户模型
public function role(){
return $this->belongsTo(Role::class);
}
这是我的榜样
public function user(){
return $this->hasOne(User::class);
}
这是我的角色表结构
这是我的用户表结构
我如何在用户模型中访问与员工相同的角色 我尝试过
User::with('role')->where('role_name','employee')->get();
但是有错误
role_name column not found
答案 0 :(得分:3)
这只会给您具有雇员角色的用户。
User::whereHas('role', function ($query) {
$query->where('role_name', 'employee');
})->get();
这将为您提供所有具有员工角色的用户
User::with(['role' => function ($query) {
$query->where('role_name', 'employee');
}])->get();
答案 1 :(得分:1)
尝试一下:
User::whereHas('role', function ($query) {
$query->where('role_name', 'employee');
})->get();
详细信息:https://laravel.com/docs/5.4/eloquent-relationships#querying-relationship-existence
答案 2 :(得分:0)
尝试一下:
User::with(['role' => function ($query) {
$query->where('role_name', 'employee');
}])->get();