saving
またはupdating
イベントでモデルの属性の古い/前の値を確認する方法はありますか?
例えば。次のようなことが可能ですか:
User::updating(function($user)
{
if ($user->username != $user->old->username) doSomething();
});
わかりました、現在ドキュメントにないので、これは偶然見つけました...
getOriginal()
元の属性値の配列を返す利用可能なメソッドがあります:
User::updating(function($user)
{
if ($user->username != $user->getOriginal('username')) {
doSomething();
}
// If you need multiple attributes you may use:
// $originalAttributes = $user->getOriginal();
// $originalUsername = $originalAttributes['username'];
});
Laravel 7 より前の
getOriginal
属性タイプのキャストは無視されることに注意してください。
Laravel 4.0 および 4.1 では、 isDirty() メソッドで確認できます。
User::updating(function($user)
{
if ($user->isDirty('username')){
doSomething();
}
});
メソッドをオーバーロードしてから、親メソッドを呼び出すことができます。