Laravel自动删除一对多的多态关系

时间:2017-07-18 17:50:10

标签: php laravel polymorphism

我有类别和费用之间的关系。费用属于一个类别,它使用数据库中的外键进行链接。每当我删除一个类别时,所有链接的费用也将按预期删除。

现在,我还使用One-to-Many多态关系在Expense和许多Transactions之间建立了关系。使用下面的方法,当我删除费用时,将按预期删除所有交易。

但是,当我删除一个类别时,所有费用都将被删除以及预期,但不会从任何费用中删除。为什么这样,当我删除类别时,如何确保所有费用都被删除?

在费用模型中删除事件:

protected static function boot() {
    parent::boot();

    static::deleting(function($expense) {
        $expense->transactions()->delete();
    });
}

关系费用 - >交易:

public function transactions()
{
    return $this->morphMany(Transaction::class);
}

0 个答案:

没有答案