J'utilise un Observer pour voir si un utilisateur a été mis à jour.
Chaque fois qu'un utilisateur est updated
, j'aimerais vérifier si sa email
a été modifiée.
Est-ce que quelque chose comme ça est possible?
class UserObserver
{
/**
* Listen to the User created event.
*
* @param \App\User $user
* @return void
*/
public function updating(User $user)
{
// if($user->hasChangedEmailInThisUpdate()) ?
}
}
Comme tadman
déjà dit dans les commentaires, la méthode isDirty
fait l'affaire:
class UserObserver
{
/**
* Listen to the User created event.
*
* @param \App\User $user
* @return void
*/
public function updating(User $user)
{
if($user->isDirty('email')){
// email has changed
$new_email = $user->email;
$old_email = $user->getOriginal('email');
}
}
}
Vous n'êtes pas obligé de récupérer l'utilisateur de la base de données. Ce qui suit devrait fonctionner:
public function updating(User $user)
{
if($user->isDirty('email')){
// email has changed
$new_email = $user->email;
$old_email = $user->getOriginal('email');
}
}