与Laravel雄辩的多行关系

时间:2020-10-10 06:56:44

标签: laravel eloquent eloquent-relationship

我不能摆弄如何建立一个关系,该关系涉及在另一个表中具有相同模型的两个记录。我试图在某个特定的地理位置保存公司收购(M&A)的记录,为了做到这一点,我必须在公司表中保留我可能也可能没有的收购方和被收购方的记录。

这是一个简单的例子:

ABC收购XYZ

获取表

acquirer | acquired | type          | acquirer_id | acquiree_id
ABC        XYZ        acquisition     34            58

公司表

id | name | slug 
34 | ABC  | abc
58 | XYZ  | xyz

我不确定这是否是一个好方法,但我希望能够在两个配置文件中显示获取的数据。

例如:在ABC的个人资料上,我们表明ABC收购了XYZ,在XYZ的个人资料上,我们表明XYZ已被ABC收购。我需要获取公司的子弹(如果公司存在),以便能够在显示并购时链接到它。

1 个答案:

答案 0 :(得分:0)

我不确定这是否可以解决您的问题。 您可以在“获取模型”中声明两个关系。

public function acquirerCompany() {
    return $this->belongsTo(Company::class, 'acquirer_id');
}

public function acquireeCompany() {
    return $this->belongsTo(Company::class, 'acquiree_id');
}

现在,如果您想让公司满志:

// acquierer
$acquisition->acquirerCompany->slug;

// acquieree
$acquisition->acquireeCompany->slug;