有没有办法删除添加了
的模型观察者$model->observe(new ObserverObject)
也许像
$model->observers['ObserverObject']->remove()
由于
答案 0 :(得分:1)
您可以通过以下方式检查您的活动名称:
dd( $model->getEventDispatcher()->getListeners() );
使用以下命令将其删除:
$model->getEventDispatcher()->forget($event);
答案 1 :(得分:0)
Laravel 5.8
我有一个AccountObserver,它观察我的AccountModel的创建过程:
class AccountObserver
{
public function creating(AccountModel $account)
{
....
}
}
要禁用此功能,请先加载事件分发程序(通过任何雄辩的模型),然后告诉它要忘记什么。这适用于任何观察者方法:
$eventDispatcher = AccountModel::getEventDispatcher();
$eventDispatcher->forget('eloquent.creating: App\Models\AccountModel');
如果您想再次记住它:
AccountModel::observe(AccountObserver::class);