猿问

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

我已经看到有一个函数调用wasChanged(),您可以在其中检查属性是否在更新时更改。不是脏,而是被改变和坚持


但是我试图在我的模型事件启动函数中检查这个:


public static function boot()

{

    parent::boot();


    self::updated(function($appointment){


        if($appointment->wasChanged('appointment_date')) {

         // do something

        }


    });

}

这对我永远不起作用。有什么想法可以检查这个吗?


isDirty 函数具有不同的行为,因为它用于检查请求中是否提交了属性。


牛魔王的故事
浏览 92回答 3
3回答

精慕HU

你可以检查 save() 方法是否返回 true:$object = new Model;$object->attribute = $value;if($object->save(){ // attribute changed}

皈依舞

经过一番搜索,我发现有一个有用的函数调用getOriginal()它返回原始属性值的数组。所以我只需要访问我的属性并进行比较:$original_date = $appointment->getOriginal()['appointment_date'];if($appointment->appointment_date != $original_date) { ...}
随时随地看视频慕课网APP
我要回答