Existe-t-il un moyen de voir la valeur ancienne/précédente de l'attribut d'un modèle dans son événement saving
ou updating
?
par exemple. Est-ce que quelque chose comme ce qui suit est possible:
User::updating(function($user)
{
if ($user->username != $user->old->username) doSomething();
});
Ok, j'ai trouvé cela tout à fait par hasard, car ce n'est pas dans la documentation pour le moment ...
Il existe une méthode getOriginal()
qui renvoie un tableau des valeurs d'attribut d'origine:
User::updating(function($user)
{
$original = $user->getOriginal();
if ($user->username != $original['username']) {
doSomething();
}
});
Laravel frappe encore!
Attention, il ignore le casting de type de modèle.
Dans Laravel 4.0 et 4.1, vous pouvez vérifier avec méthode isDirty () :
User::updating(function($user)
{
if ($user->isDirty('username')){
doSomething();
}
});
Vous pouvez surcharger les méthodes, puis appeler la méthode parent.