我在Jobs Model和Permits模型之间创建了一对多的关系。我最近发现了Tinker的强大工具,所以我一直用它来测试我的模型。当我运行Job::with('steps')->find(1);
时,我收到此错误
Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'steps.job_id' in 'where clause' (SQL: select * from `steps` where `steps`.`job_id` in (1))'
这是工作模式
public function steps ()
{
return $this->hasMany('MyfirstApp\Step');
}
这是我的步骤模型
public function Job ()
{
return $this->belongsTo('MyFirstApp\Job');
}
我已经在Jobs Table中设置了foregin密钥,所以我不确定错误是什么。有什么想法吗?
表格结构供参考
答案 0 :(得分:1)
对于您的关系,Job
有许多Steps
,您分配了错误的外键。
在您的情况下,steps
表应包含job_id
而不是job
包含steps_id
。
<强>解决方案:强>
steps_id
表格中删除job
。job_id
表中的steps
设置为外键。答案 1 :(得分:1)
试试吧
你在模特身上设置了错误的关系
工作模式
public function steps ()
{
return $this->belongsTo('MyfirstApp\Step');
}
步骤模型
public function Job ()
{
return $this->hasMany('MyFirstApp\Job');
}