Where 0 = 1 in Laravel BelongsTo 关系查询日志

Where 0 = 1 in Laravel BelongsTo Relationship Query Log

我只是想使用 BelongsTo 关系来检索记录, 这是方案:

roles:
- id
- title
users:
- id
- Role_ID

我正在为数据库使用 SQL Server,因此 Role_ID 可以指向 role_id 我认为 :D.

这里是 User 模型中属于关系的代码:

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

我也试过这样:

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

但是无论参数是什么,它都不起作用,当我得到查询日志时,它看起来像:

bindings: []
query: "select * from [roles] where 0 = 1"
time: 1.49

以下是我尝试访问 Controller 中的关系的方法:

User::with(['role'])->get($someColumns)

这个问题困扰了我很多次,但不知道问题出在哪里。

感谢任何帮助。

谢谢大家

在你的模型中尝试这种关系。

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

谢谢大家,@Dilip 提示帮助我解决了问题。

请在这一行查看我更新的问题:

User::with(['role'])->get($someColumns)

实际上问题出在 $someColumns 上,因为当我在 get 中提到某些列的名称时,它导致了问题,但是当我用以下内容替换它时:

User::with(['role'])->get()

成功了,

所以简单的解决方案是在获取关系belongsTo

时不提及列名

您必须在 get() 列中包含外键

User::with(['role'])->get(Role_ID, OthersColumns)