在Eloquent模型事件中获取先前的属性值

时间:2013-06-28 14:42:39

标签: php laravel laravel-4 eloquent

有没有办法在savingupdating事件中查看模型属性的旧/上一个值?

例如。类似于以下内容:

User::updating(function($user)
{
    if ($user->username != $user->old->username) doSomething();
});

3 个答案:

答案 0 :(得分:114)

好的,我发现这很偶然,因为它不在目前的文档中......

有一个getOriginal()方法可用于返回原始属性值的数组:

User::updating(function($user)
{
    $original = $user->getOriginal();
    if ($user->username != $original['username']) {
        doSomething();
    }
});

Laravel再次罢工!

答案 1 :(得分:28)

在Laravel 4.0和4.1中,您可以查看isDirty() method

User::updating(function($user)
{
    if ($user->isDirty('username')){
        doSomething();
    }
});

答案 2 :(得分:1)

您可以重载方法,然后调用父方法。