【问题标题】:Eloquent multiple row relationship with Laravel与 Laravel 的雄辩的多行关系
【发布时间】:2021-01-25 04:08:37
【问题描述】:

我不知道如何创建涉及在另一个表中具有相同模型的两条记录的关系。我正在尝试记录某个地区的公司收购 (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 收购。我需要获取公司的 slug(如果公司存在),以便在展示收购时能够链接到它。

【问题讨论】:

    标签: laravel eloquent eloquent-relationship


    【解决方案1】:

    我不确定这是否能解决您的问题。 您可以在采集模型中声明两个关系。

    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;
    

    【讨论】:

      猜你喜欢
      • 2017-10-12
      • 1970-01-01
      • 2017-05-19
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 2015-03-14
      相关资源
      最近更新 更多