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