站長資訊網
最全最豐富的資訊網站

淺析Laravel中isDirty()和wasChanged()的區別

本篇文章帶大家聊聊Laravel數據模型中isDirty()和wasChanged()的區別,希望對大家有所幫助!

淺析Laravel中isDirty()和wasChanged()的區別

Laravel 數據模型中 `isDirty()` 和 `wasChanged()` 有區別嗎?

答案:是有區別的。

相關代碼: github.com/laravel/framework/blob/…

isDirty 函數的代碼如下:

/**  * 判斷模型或者任意指定模型屬性是否被修改過  *  * @param  array|string|null  $attributes  * @return bool  */public function isDirty($attributes = null){     return $this->hasChanges(         $this->getDirty(), is_array($attributes) ? $attributes : func_get_args()     );}
登錄后復制

getChanges() 和 getDirty() 函數的代碼如下

/**  * 獲取自從最后一次同步以來,被修改的屬性值  *  * @return array  */public function getDirty(){     $dirty = [];     foreach ($this->getAttributes() as $key => $value) {         if (! $this->originalIsEquivalent($key, $value)) {             $dirty[$key] = $value;         }     }     return $dirty;}/**  * 獲取所有已經被修改的屬性.  *  * @return array  */public function getChanges(){     return $this->changes;}
登錄后復制

簡而言之.

答案引用于: laracasts.com/discuss/channels/elo…

isDirty (and getDirty) 用在保存前置執行, 查看哪些屬性在從數據庫檢索到調用之間被修改過, 而 wasChanged (and getChanges)是保存后置執行,查看屬性是否在上次保存中(從代碼到數據庫)被修改或者更新.

原文地址:https://stackoverflow.com/questions/58312036/incoherence-between-eloquent-isdirty-and-getchanges

譯文地址:https://learnku.com/laravel/t/61576

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲av日韩av永久无码电影 | 四虎国产精品永久在线播放| 精品久久久无码中文字幕| 日韩精品无码一区二区视频| 国产精品99精品一区二区三区| 国精品午夜福利视频不卡麻豆 | 日韩精品无码一区二区三区免费| 亚洲午夜久久久精品影院| H无码精品3D动漫在线观看| 一区二区三区精品视频| 日韩欧精品无码视频无删节| 国产在线视精品麻豆| 国产精品自拍亚洲| 成人无码精品一区二区三区 | 精品日产一卡2卡三卡4卡自拍| 国产成人亚洲综合无码精品| 国产系列高清精品第一页| 亚洲精品一级无码鲁丝片| 日韩精品电影一区| 亚洲视频日韩视频| 日韩精品视频在线观看免费| 国产成人麻豆精品午夜福利在线| 亚洲国产成人99精品激情在线| 亚洲精品tv久久久久久久久| 国产午夜精品一区二区三区小说 | 国产在线无码精品无码| 日本精品人妻无码免费大全| 国产精品无码久久综合网| 国产精品成人69XXX免费视频| 真实国产精品视频国产网| 精品亚洲456在线播放| 国产精品九九九久久九九| 999在线视频精品免费播放观看| 久久久国产乱子伦精品| 久久精品这里热有精品| 久久精品国产99国产精品澳门| 国产精品成人h片在线| 国产精品成人h片在线| 久久噜噜久久久精品66| 国内精品视频在线观看| 国内精品久久久久久久coent|