php – 阻止Laravel观察者事件的动作

我想知道如何在模型观察者身上防止某个动作,例如:

$model->update(['foo' => 'bar']);

在观察者中

public function updating(Model $model)
{
    if($model->isDirty('foo') {
        // Prevent action from happening
    }
}

先感谢您.

解决方法:

你可以简单地返回false.

如文档中所述. http://laravel.com/docs/5.6/events#defining-listeners.

Sometimes, you may wish to stop the propagation of an event to other listeners. You may do so by returning false from your listener’s handle method.

此操作不会更新记录/模型.

public function updating(Model $model)
{
    if($model->isDirty('foo') {
        // Prevent action from happening.
       return false;

    }
}

尽管模型实例值已更新,但这些值未在数据库中更新,因此在将实例返回到视图或API时要小心.为了解决这个问题你可以使用getOriginal()

希望这可以帮助.

上一篇:序列号Sequences


下一篇:链表