Cet article parlera de la différence entre isDirty() et wasChanged() dans le modèle de données Laravel. J'espère qu'il sera utile à tout le monde !
Y a-t-il une différence entre `isDirty()` et `wasChanged()` dans le modèle de données Laravel ?
Réponse : Il y a une différence.
Code associé : github.com/laravel/framework/blob/...
Le code de la fonction isDirty est le suivant :
/** * 判断模型或者任意指定模型属性是否被修改过 * * @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() et le code de la fonction getDirty() est le suivant
/** * 获取自从最后一次同步以来,被修改的属性值 * * @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;}
En bref .
Réponse citée depuis : laracasts.com/discuss/channels/elo...
isDirty (et getDirty) est utilisé lors de la pré-exécution de la sauvegarde pour voir quelles propriétés ont été modifiées entre la récupération de la base de données et l'appel. , et wasChanged (et getChanges) est exécuté après l'enregistrement pour vérifier si les propriétés ont été modifiées ou mises à jour lors de la dernière sauvegarde (du code à la base de données
Adresse originale : https://stackoverflow.com/questions/58312036 /). incohérence-entre-éloquent-isdirty-and-getchanges
Adresse de traduction : https://learnku.com/laravel/t/61576
[Recommandations associées : tutoriel vidéo laravel]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!