Laravel: модель событий, когда в провайдере нет изменений - PullRequest
3 голосов
/ 02 октября 2019

При обновлении модели пользователя (user::update()) запускаются «События модели»:

  1. User::updating
  2. User::updated

Толькоесли есть какие-то изменения значений, есть ли способ вызвать другое «Событие», если изменений нет? спасибо

//Provider

public function boot()
{
    User::updated(function ($user) {
        //do something
    });
}

1 Ответ

1 голос
/ 02 октября 2019

Вы можете проверить, изменилась ли модель с помощью метода isDirty(), и запустить событие вручную .. например:

User::updating(function ($user) {
    if ( ! $user->isDirty())
    {
        event(...);
    }    
});

Пример isDirty()

$user = App\User::first();
$user->isDirty();          //false
$user->name = "Test";
$user->isDirty();          //true

но сделайте это до updated Полагаю, вам следует использовать событие updating здесь.

...