Heim > PHP-Framework > Laravel > Eine kurze Analyse des Unterschieds zwischen isDirty() und wasChanged() in Laravel

Eine kurze Analyse des Unterschieds zwischen isDirty() und wasChanged() in Laravel

青灯夜游
Freigeben: 2023-01-04 21:23:20
nach vorne
1582 Leute haben es durchsucht

In diesem Artikel erfahren Sie mehr über den Unterschied zwischen isDirty() und wasChanged() im Laravel-Datenmodell. Ich hoffe, er wird Ihnen hilfreich sein!

Eine kurze Analyse des Unterschieds zwischen isDirty() und wasChanged() in Laravel

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()
    );}
Nach dem Login kopieren

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;}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage