繁体   English   中英

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

[英]Get previous attribute value in Eloquent model event

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

例如。 是否有以下可能:

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 4.0 和 4.1 中,您可以使用isDirty() 方法进行检查:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM