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

淺析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號
99热这里有免费国产精品| 精品人妻系列无码人妻免费视频| 亚洲国产精品ⅴa在线观看| 亚洲精品免费在线观看| 99国产精品久久| 国产精品激情综合久久| 日韩精品无码永久免费网站 | 国产区香蕉精品系列在线观看不卡| 中文无码亚洲精品字幕| 久久精品无码一区二区WWW | 欧洲精品免费一区二区三区| 99久久久精品免费观看国产| 1024你懂的国产精品| 久久99精品久久久| 国产精品毛片VA一区二区三区| 91视频国产精品| 99精品久久精品| 91久久精品91久久性色| 中日欧洲精品视频在线| 久久99精品久久久久久噜噜| 国产精品毛片无码| 国产激情精品一区二区三区| 国产成人无码精品久久久久免费| 亚洲一级Av无码毛片久久精品| 亚洲国产精品国产自在在线| 无码AⅤ精品一区二区三区| 无码精品久久一区二区三区| 精品福利视频第一| 亚洲国产一成久久精品国产成人综合 | 精品久久久久久无码人妻中文字幕 | 国产日韩精品无码区免费专区国产| 亚洲精品偷拍视频免费观看| 亚洲精品黄色视频在线观看免费资源 | 亚洲乱码国产乱码精品精| 97久久国产露脸精品国产| 国内精品伊人久久久久| 精品国产免费一区二区三区香蕉| 精品久久久久久亚洲| 久久九九国产精品怡红院| 99久久精品美女高潮喷水| 亚洲精品成人久久|