Получить предыдущее значение атрибута в событии модели 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
Вы можете перегрузить методы, а затем вызвать родительский метод.