Ada*_*dam 12 php mysql laravel-5
我正在使用Observer来监视用户是否已更新.
每当用户,updated
我想检查他email
是否已被更改.
这样的事情可能吗?
class UserObserver
{
/**
* Listen to the User created event.
*
* @param \App\User $user
* @return void
*/
public function updating(User $user)
{
// if($user->hasChangedEmailInThisUpdate()) ?
}
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*dam 16
正如tadman
评论中已经说过的那样,该方法isDirty
可以解决问题:
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');
}
}
}
Run Code Online (Sandbox Code Playgroud)
use*_*066 12
您不必再次从数据库中获取用户。以下应该工作:
public function updating(User $user)
{
if($user->isDirty('email')){
// email has changed
$new_email = $user->email;
$old_email = $user->getOriginal('email');
}
}
Run Code Online (Sandbox Code Playgroud)