Php 如何在有说服力的Morphottomany pivot表上侦听更改

Php 如何在有说服力的Morphottomany pivot表上侦听更改,php,laravel,eloquent,laravel-nova,Php,Laravel,Eloquent,Laravel Nova,我有3个模型(Operator1、Operator2、Operator3),它们都与PaymentMethods有一个morptomy关系。关系/透视表包含一些特定于单个运算符的附加信息。以下是一个示例模型: class Operator1 extends Model { /** * The payment methods of the operator. */ public function paymentMethods() { re

我有3个模型(Operator1、Operator2、Operator3),它们都与PaymentMethods有一个morptomy关系。关系/透视表包含一些特定于单个运算符的附加信息。以下是一个示例模型:

class Operator1 extends Model
{
    /**
     * The payment methods of the operator.
     */
    public function paymentMethods()
    {
        return $this->morphToMany('App\PaymentMethod', 'payable')->withPivot([
            'deposit_time',
            'withdrawal_time',
            'deposit_fees',
            'withdrawal_fees',
        ]);
    }
}
我需要监听数据透视表上的更改。在处理
与多个关系时,我可以使用
->using(aPivotModelClass::class)
方法指定一个定制的透视类模型,在这里我可以监听
保存
保存
删除
删除
,等等有说服力的事件

我使用的不必对每个透视都这样做,但是因为我使用的是,它不会触发该包提供的事件,所以我需要手动触发它们。我是这样做的:

use Illuminate\Database\Eloquent\Relations\Pivot as EloquentPivot;

abstract class Pivot extends EloquentPivot
{
    /**
     * @var string
     */
    public $relationName;

    /**
     * {@inheritDoc}
     */
    public static function boot()
    {
        parent::boot();

        static::saved(function (Pivot $model) {
            $model->pivotParent->firePivotEvent('attached', true, $model->relationName, [$model->attributes]);
        });

        static::deleted(function (Pivot $model) {
            $model->pivotParent->firePivotEvent('detached', true, $model->relationName, [$model->attributes]);
        });
    }
}
到目前为止,这一切都可以与belongToMany结合使用,但现在我尝试在morphotomany关系上使用
->using(SomePivotModel::class)
方法。这不起作用,我得到以下错误:

local.ERROR: Call to undefined method App\Pivots\Payables::setMorphType() {"userId":1,"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method App\\Pivots\\Payables::setMorphType() at /var/www/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:50)
如果没有finally或类似的包,我怎么能监听morptomanypivot表的更新呢

相关的: