有三种模式:雇主、示例、员工。
模型的重要填充物是:
- 雇主**
- 公司名称
- 示例**
- 工人标识
- 雇主标识
- 工人**
- 姓名
因此,我有:
class Employer {
public function instances()
{
return $this->hasMany(Instance::class);
}
}
class Instance {
public function worker()
{
return $this->belongsTo(Worker::class);
}
public function employer()
{
return $this->belongsTo(Employer::class);
}
}
我想要的是
class Worker {
public function employer()
{
return $this->belongsToThrough(Instance::class, Employer::class);
}
}
但此函数不存在。SQL应为:
select e.company
from employers e
join instances i on i.employer_id = e.id
join workers w on w.id = i.worker_id
where w.id = ?
最后,我希望能够使用:
$workers_company = Worker::find(1)->employer->company_name;
1条答案
按热度按时间qnakjoqk1#
您需要一个
hasOneThrough
关系,最终表/类作为第一个参数,中间表/类作为第二个参数(通过示例具有一个雇主)。