首页 > 解决方案 > Laravel 观察者更新/更新

问题描述

我不确定如何最好地做到这一点。我需要访问以is_dirty()检查是否更改了特定字段,这需要在观察者的“更新”方法中完成。但我只想在更新成功的情况下采取行动。

如果“更新”方法中有办法告诉它尝试保存更改然后查看它是否成功?

如果不是,将更新和更新配对的最佳方式是什么?我是否只需在更新中保存一个缓存值,指定是否修改了相关字段,然后在更新中提取该缓存值?或者会有更好的方法吗?

标签: laravellaravel-8observer-patternobservers

解决方案


您可以尝试以下方法:

class ModelObserver
{   
    public function updated(Model $model)
    {
        /**
         * Listening inside 'updated' since we only care about model 
         * updated which have already happened
         */
        if ($model->wasChanged('my-special-field')) {
            // Do something...
        } 
    }
}

您可以在此处阅读有关该wasChanged方法的更多信息。


推荐阅读