У меня есть 3 модели (Оператор1, Оператор2, Оператор3), которые все имеют отношение MorphToMany к PaymentMethods. Таблица отношений / сводок содержит некоторую дополнительную информацию, определяющую c для одного оператора. Вот пример модели:
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',
]);
}
}
Мне нужно прослушать изменения в сводной таблице. При работе с отношениями BelongsToMany
я могу использовать метод ->using(aPivotModelClass::class)
, чтобы указать модель пользовательского класса сводок, где я затем могу прослушивать saving
, saved
, deleted
, deleting
и др. c , красноречивые события.
Я использую пакет eventually
от altek , чтобы не делать это для каждого центра, но так как я использую Laravel Nova , который не не запускать события, предоставляемые этим пакетом, мне нужно запускать их вручную. Я делаю это так:
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]);
});
}
}
Пока все это работает в сочетании с BelongsToMany, но сейчас я пытаюсь использовать метод ->using(SomePivotModel::class)
в отношении MorphToMany. Это не работает, и я получаю следующую ошибку:
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)
Как я могу прослушивать обновления сводных таблиц MorphToMany, без каких-либо возможных или похожих пакетов?