如何在laravel中将已连接的表与其他表连接?

时间:2019-02-23 11:06:39

标签: php mysql laravel join

我有一个用户表,它有一个userRole,而userRole属于Role。因此,我也想获取userRole和Role。

用户模型中的代码:

public function userRole()
{
    return $this->hasOne(UserRole::class);
}

UserRole模型中的代码:

 public function role()
{
    return $this->belongsTo('App\Role');
}

控制器中的代码

User::with('userRole', function ($role) {
  $role->with(['Role']);
})
->wherehas('userRole', function ($query) {
     $query->where('role_id','1');
 })->get();

这给我错误

  

“ mb_strpos()期望参数1为字符串”

1 个答案:

答案 0 :(得分:1)

问题是,当您想向with()方法中添加一个约束时,应该传递一个数组。

您的代码应类似于:

User::with([
    'userRole' => function ($query) {
        ...
    }
])
...