首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查Laravel 5.5模型事件中的属性是否已更改

检查Laravel 5.5模型事件中的属性是否已更改
EN

Stack Overflow用户
提问于 2019-05-27 02:50:29
回答 2查看 1.9K关注 0票数 0

我已经看到有一个名为wasChanged()的函数,您可以在其中检查属性在更新时是否发生了更改。不是脏的,而是被更改并持久存在的

但是,我正在尝试在我的模型事件引导函数中检查这一点:

代码语言:javascript
复制
public static function boot()
{
    parent::boot();

    self::updated(function($appointment){

        if($appointment->wasChanged('appointment_date')) {
         // do something
        }

    });
}

这对我来说从来都不管用。你知道我该怎么检查这个吗?

isDirty函数的行为与用于检查请求中是否已提交属性的行为不同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-27 03:41:17

经过一些搜索之后,我发现有一个名为getOriginal()的有用函数,它返回原始属性值的数组。

所以我只需要访问我的属性并进行比较:

代码语言:javascript
复制
$original_date = $appointment->getOriginal()['appointment_date'];

if($appointment->appointment_date != $original_date) {

 ...

}

Answer taken from here

票数 2
EN

Stack Overflow用户

发布于 2019-05-27 02:56:58

你可以检查save()方法是否返回true:

代码语言:javascript
复制
$object = new Model;
$object->attribute = $value;
if($object->save(){
 // attribute changed
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56316462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档