2017-02-02 2 views

Antwort

0

Wenn das Modell Daten aus der Tabelle liest, enthalten die Arrays "Original" und "Attribut" dieselben Daten. Wenn Sie den Attributwert ändern (z. B. $ user-> name = 'John'), wird die Änderung nur für das Array 'attributes' übernommen, 'original' bleibt jedoch gleich. (daher der Name).

Wenn update() für ein Modell aufgerufen wird, prüft die Methode, was sich beim Vergleich von zwei Arrays geändert hat, und erstellt nur Abfragen für geänderte Felder. So im Fall von $ Nutzer-> Namensänderung Laravel wird diesen Code nicht erstellen:

UPDATE users set name = 'John', password = 'pass', email = 'email' where id = 1 

aber:

UPDATE users set name = 'John' where id = 1 

dies nicht der einzige Weg, 'Original' Array Eloquent Anwendungen sein kann. Ich fand clockwork hilfreich, wenn Sie sehen müssen, was unter der Haube von Eloquent vorgeht.