Получить предыдущее значение атрибута в событии модели Eloquent Есть ли способ увидеть старое/предыдущее значение атрибута модели в его событии saving или updating? например. Возможно следующее: User::updating(function($user) { if ($user->username != $user->old->username) doSomething(); }); Ответ 1 Хорошо, я нашел это совершенно случайно, поскольку в настоящее время этого нет в документации... getOriginal() метод getOriginal() который возвращает массив исходных значений атрибута: User::updating(function($user) { $original = $user->getOriginal(); if ($user->username != $original['username']) { doSomething(); } }); Ларавел ударяет снова! Будьте осторожны, он игнорирует тип модели приведения. Ответ 2 В Laravel 4.0 и 4.1 вы можете проверить с помощью метода isDirty(): User::updating(function($user) { if ($user->isDirty('username')){ doSomething(); } }); Ответ 3 Вы можете перегрузить методы, а затем вызвать родительский метод.
Ответ 1 Хорошо, я нашел это совершенно случайно, поскольку в настоящее время этого нет в документации... getOriginal() метод getOriginal() который возвращает массив исходных значений атрибута: User::updating(function($user) { $original = $user->getOriginal(); if ($user->username != $original['username']) { doSomething(); } }); Ларавел ударяет снова! Будьте осторожны, он игнорирует тип модели приведения.
Ответ 2 В Laravel 4.0 и 4.1 вы можете проверить с помощью метода isDirty(): User::updating(function($user) { if ($user->isDirty('username')){ doSomething(); } });