eloquent 与 laravel 5.4 中三个表的关系

eloquent relation with three tables in laravel 5.4

我有三个模型,分别命名为 JobJobDetailCustomerJobJobDetailCustomer 有很多关系与 Job 有很多关系。 下面是表的结构。

Job
id customer_id jobname

JobDetail 
id job_id days

Customer 
id name

以下是模型:

class Job extends Model
{
    public function job_details()
    {
        return $this->hasMany('App\JobDetail','job_id','id');
    }

}

class Customer extends Model
{
    public function customer()
    {
        return $this->hasMany('App\Job','customer_id','id');
    }
}

class JobDetail extends Model
{
    //
}

我试图执行下面的查询,但它抛出错误 Call to undefined relationship [customer] on model [App\Job].

我的查询:

 $data = Job::with(['job_details','customer'])->get();

有人可以建议我如何连接这些模型并获取数据吗? 谢谢!

您没有在 Job 模型中指定 customer 的关系。

所以,像这样的东西应该可以解决问题:

public function customer()
{
    return $this->belongsTo('App\Customer','job_id','id');
}