Laravel 5 |一对多关系查询错误

Laravel 5 | One to Many Relationship Query Error

我在工作模型和许可模型之间创建了一对多关系。我最近发现了 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');
    }

我已经在 J​​obs Table 中设置了外键,所以我不确定可能是什么错误。有什么想法吗?

Table结构供参考

对于你的关系,Job有很多Steps,你分配了错误的外键。

在你的情况下 steps table 应该包含 job_id 而不是 job 包含 steps_id.

解法:

  • job table 中删除 steps_id
  • stepstable中的job_id设置为外键。

试一试

您在模型上设置的关系有误

工作模型

public function steps ()
    {
        return $this->belongsTo('MyfirstApp\Step');
    }

阶梯模型

public function Job ()
    {
      return $this->hasMany('MyFirstApp\Job');
    }