我有一个交易表,每个Transaction
都属于Driver
或Customer
中的一个 - 因此我在它们之间设置了多态关系。
对于Transaction
,我设置了:
public function owner() {
return $this->morphTo();
}
针对司机和乘客:
public function transactions() {
return $this->morphMany(Transaction::class, 'owner');
}
但是每个司机也属于一个公司
。我正试图通过hasManyThrough
关系获取所有属于公司
的交易:
public function transactions() {
return $this->hasManyThrough(Transaction::class, Driver::class);
}
但是在多态关系上似乎不起作用,因为它会抛出一个错误,因为它试图在transactions
表中查找一个driver_id
字段。
如何通过司机获取属于公司的所有交易记录?
null
代表什么?我似乎尝试过类似的东西,但是像return $this->hasManyThrough(Transaction::class, Driver::class, null, 'owner_id')
。 - Zlautumndrivers
表中的外键。当您传递null
时,Laravel将使用默认的company_id
。您也可以显式地传递该值。 - Jonas Staudenmeir