Heim > Artikel > PHP-Framework > Eine kurze Analyse des Unterschieds zwischen isDirty() und wasChanged() in Laravel
In diesem Artikel erfahren Sie mehr über den Unterschied zwischen isDirty() und wasChanged() im Laravel-Datenmodell. Ich hoffe, er wird Ihnen hilfreich sein!
Gibt es einen Unterschied zwischen „isDirty()“ und „wasChanged()“ im Laravel-Datenmodell?
Antwort: Es gibt einen Unterschied.
Zugehöriger Code: github.com/laravel/framework/blob/...
isDirty-Funktionscode lautet wie folgt:
/** * 判断模型或者任意指定模型属性是否被修改过 * * @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()- und getDirty()-Funktionscode lautet wie folgt
/** * 获取自从最后一次同步以来,被修改的属性值 * * @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;}
Kurz gesagt .
Antwort zitiert aus: laracasts.com/discuss/channels/elo...
isDirty (und getDirty) wird beim Speichern vor der Ausführung verwendet, um zu sehen, welche Eigenschaften zwischen dem Abruf aus der Datenbank und dem Aufruf geändert wurden , und wasChanged (und getChanges) wird nach dem Speichern ausgeführt, um zu überprüfen, ob die Eigenschaften beim letzten Speichern geändert oder aktualisiert wurden (vom Code zur Datenbank
Originaladresse: https://stackoverflow.com/questions/58312036 / incoherence-between-eloquent-isdirty-and-getchanges
Übersetzungsadresse: https://learnku.com/laravel/t/61576
[Verwandte Empfehlungen: Laravel-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonEine kurze Analyse des Unterschieds zwischen isDirty() und wasChanged() in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!