Предотвращение действий от событий наблюдателя Laravel - PullRequest
0 голосов
/ 25 апреля 2018

Я хотел бы знать, как можно предотвратить действие на модельном наблюдателе, например:

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

У наблюдателя

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

Заранее спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете просто вернуть false.

Как указано в документах.http://laravel.com/docs/5.6/events#defining-listeners.

Иногда вы можете остановить распространение события на других слушателей.Вы можете сделать это, вернув false из метода дескриптора вашего слушателя.

это действие не будет обновлять запись / модель.

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

    }
}

Хотя значения экземпляра модели обновляются, но этине обновляются в базе данных, поэтому будьте осторожны при возврате экземпляра в представления или API.Для решения этой проблемы вы можете использовать getOriginal()

Надеюсь, это поможет.

...