【发布时间】:2019-07-23 21:02:27
【问题描述】:
有没有办法删除用
添加的模型观察者$model->observe(new ObserverObject)
可能是这样的
$model->observers['ObserverObject']->remove()
谢谢
【问题讨论】:
标签: laravel laravel-4 observers
有没有办法删除用
添加的模型观察者$model->observe(new ObserverObject)
可能是这样的
$model->observers['ObserverObject']->remove()
谢谢
【问题讨论】:
标签: laravel laravel-4 observers
您可以通过以下方式检查您的活动名称:
dd( $model->getEventDispatcher()->getListeners() );
并使用以下方法将其删除:
$model->getEventDispatcher()->forget($event);
【讨论】:
foreach ($model->getObservableEvents() as $event) $model->getEventDispatcher()->forget("MyAwesomeObserver@$event")
Model::observe 呼叫链。这对我有用:foreach ($model->getObservableEvents() as $event) $model->getEventDispatcher()->forget("eloquent.{$event}: " . get_class($model)); }
Laravel 5.8
我有一个 AccountObserver,用于观察我的 AccountModel 上的创建过程:
class AccountObserver
{
public function creating(AccountModel $account)
{
....
}
}
要禁用此功能,首先加载事件调度程序(通过任何 eloquent 模型),然后告诉它要忘记什么。这适用于任何观察者方法:
$eventDispatcher = AccountModel::getEventDispatcher();
$eventDispatcher->forget('eloquent.creating: App\Models\AccountModel');
如果你想再次记住它:
AccountModel::observe(AccountObserver::class);
【讨论】: