laravel删除模型观察者

时间:2014-04-30 08:52:19

标签: laravel laravel-4 observers

有没有办法删除添加了

的模型观察者
$model->observe(new ObserverObject)

也许像

$model->observers['ObserverObject']->remove()

由于

2 个答案:

答案 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);