php - 如何将已连接的表与 Laravel 中的其他表连接?

标签 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');
}

Controller 中的代码:

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

这给了我错误

"mb_strpos() expects parameter 1 to be string"

最佳答案

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

您的代码应该类似于:

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

关于php - 如何将已连接的表与 Laravel 中的其他表连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840919/

相关文章:

php - 使用 Laravel 5.8 验证时显示错误消息的问题

Laravel 创建服务提供者参数 1 必须实现服务提供者

php - 在本地运行 Web 应用程序

php - 寻找更有效的方式来服务大量链接重定向?

php - 在 javascript 文件中使用 php 数据

php - 当用另一个文本框写入时更改一个文本框的文本

php - 试图从 mysql 查询创建多维数组,php?

php - 内部连接 ​​2 个具有相同列名的表

mysql - Catalyst 创建架构无法连接,但我可以

php - laravel验证外键数量不大于另一个表的id