从模型laravel访问关系

时间:2018-08-03 08:07:08

标签: php laravel laravel-5

我有两个表,其中用户表与角色表具有一对一关系

这是我的用户模型

public function role(){
    return $this->belongsTo(Role::class);
}

这是我的榜样

public function user(){
    return $this->hasOne(User::class);
}

这是我的角色表结构

enter image description here

这是我的用户表结构

enter image description here

我如何在用户模型中访问与员工相同的角色 我尝试过

User::with('role')->where('role_name','employee')->get();

但是有错误

role_name column not found

3 个答案:

答案 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();