【发布时间】:2020-10-24 01:42:43
【问题描述】:
我在 Laravel 应用程序中设置了以下数据库架构。为简单起见,我只提及重要的列。
任务
- job_id
工作
- client_id
用户
- 身份证
在 Task 模型中,我希望有一个与 users 表的关系方法,在本例中称为中间 jobs 表上的 Client (client_id)。
在我的代码中,我希望能够引用$task->client();
我查看了文档并发现:
public function client()
{
return $this->belongsToMany('App\User', 'users', 'client_id');
}
返回:
"SQLSTATE[42S22]: 未找到列:1054 未知列 'jobs.user_id' 在“字段列表”中(SQL:选择
users.*、jobs.client_id作为pivot_client_id,jobs.user_id作为pivot_user_id来自users内部连接jobsusers.id=jobs.user_id其中jobs.client_id= 112 和users.deleted_at为空)"
或
public function client()
{
return $this->hasOneThrough('App\User', 'App\Job', 'client_id', 'user_id');
}
返回:
"SQLSTATE[42S22]: 未找到列:1054 未知列 'on 子句'中的'users.user_id'(SQL:选择
users.*,jobs.client_idaslaravel_through_keyfromusers内部连接jobsonjobs.id=users.user_id其中jobs.deleted_at是 空和jobs.client_id= 111 和users.deleted_at为空 限制 1)"
如何从Task 模型中检索User 模型?
【问题讨论】:
标签: php sql database laravel eloquent