eloquent 与 laravel 5.4 中三个表的关系
eloquent relation with three tables in laravel 5.4
我有三个模型,分别命名为 Job
、 JobDetail
和 Customer
。Job
与 JobDetail
和 Customer
有很多关系与 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');
}
我有三个模型,分别命名为 Job
、 JobDetail
和 Customer
。Job
与 JobDetail
和 Customer
有很多关系与 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');
}