我有 3 个模型和相关表:Firm、SaleFirm、PartnerFirm。
在公司表中,我想存储有关公司的一般信息,例如名称、银行帐户、ID 和类似的东西。在另外两个表中,我将根据公司的类型(销售公司或合作伙伴公司)存储不同的信息。
由于这种逻辑,我需要这些表之间的多态一对一关系。
在我的公司表中,我有 2 列:firmable_id
和firmable_type
。
Firm Model 和 SaleFirm/PartnerFirm Model 之间的关系是这样的:
class Firm extends Model {
public function firmable()
{
return $this->morphTo();
}
}
class PartnerFirm extends Model {
public function firm()
{
return $this->morphOne(Firm::class, 'firmable');
}
}
我的问题是:我怎样才能得到firmable_type
基于模型名称的所有记录?我可以使用这种关系来做到这一点,还是我需要做这样的事情:Firm::where('firmable_type','path\to\PartnerFirm')->get()
?