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

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

青灯夜游
青灯夜游nach vorne
2023-01-04 21:23:201556Durchsuche

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()
    );}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen