【问题标题】:A class belongTo same class in Laravel一个类属于 Laravel 中的同一个类
【发布时间】:2017-05-28 09:25:17
【问题描述】:

是否可以设计一个属于同一个类的类?

例如。 People1 有一个Account 和一个BalancePeople2 有一个Account 和那个Balance

People1 创建一个事件以将 CreditPeople1->Account 传递到 People2->Account

所以Event 表看起来像:

id | people1 | account | amount

事件:

1 | foo | bar | -300

2 | foo2| bar | +300

事件 1 与事件 2 相关。如何使用 Laravel 关系指定?

我可以指定类似$this->belongTo('App\Event')? 的事件类吗? 但在这种情况下,Laravel 文档指出它所属的类也应该有 hasOne 关系。

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    一种可能的解决方案是:

    public function parent()
    {
        return $this->belongsTo('App\Event');
    }
    
    public function child()
    {
        return $this->hasOne('App\Event');
    }
    

    这应该没有问题。干杯!

    【讨论】:

    • 不错的解决方案,但是 Schema 怎么样?它也应该包含“child_id”和“parent_id”列吗?因为如果关系链接同一个foreign_key,hasOne和BelongsTo都返回一个事件对象,不管第二个是第一个的父还是子。
    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2023-04-05
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    相关资源
    最近更新 更多