Save vs Update in Laravel

8

Was ist der Unterschied zwischen der Methode save () und update () in Laravel?

Ich habe die save () -Methode im Falle einer Aktualisierungsabfrage verwendet, aber in einigen Fällen fungiert sie als Aktualisierung und in einigen Fällen fungiert sie als Einfügeabfragefunktion. Bitte lassen Sie mich wissen, was genau der Unterschied zwischen ihnen ist.

    
Pardeep Pathania 27.04.2016, 07:57
quelle

2 Antworten

19

Mit diesen Methoden können Sie Daten in der Datenbank speichern.

Die Methode save() funktioniert als INSERT , wenn Sie ein neues Modell erstellen, das derzeit nicht in Ihrer Datenbanktabelle enthalten ist:

%Vor%

Auch kann es sich wie ein UPDATE verhalten, wenn Ihr Modell bereits in der Datenbank existiert. Sie können also das Modell abrufen, einige Eigenschaften ändern und dann save() it, indem Sie db's UDPATE :

ausführen %Vor%

Mit der Methode update() können Sie Ihre Modelle bequemer aktualisieren:

%Vor%

Sie sollten also ein abgerufenes Modell keiner Variablen zuweisen. Aktualisierte Eigenschaften werden als Argumente übergeben.

Beispiele und weitere Informationen in den Laravel-Dokumenten .

    
Gino Pane 27.04.2016, 08:20
quelle
6

Es gibt nur eine Sache, die in dem, was @ginopane über den Unterschied gesagt hat, ungesagt ist. Wenn Sie die update-Methode für query builder result verwenden, ignoriert laravel $fillable oder $guard des Arrays Ihres Modells. Dies ist besonders wichtig, wenn Sie Input::all() als Argument zum Aktualisieren verwenden möchten:

%Vor%

Also in diesem Fall, wenn Sie App\Flight::where('active', 1)->update(Input::all()); verwenden, wird alles in Ihrer Datenbank aktualisiert, auch wenn Sie es in $fillable setzen. Stellen Sie daher sicher, dass Sie die Methoden save und update für Eloquent instance und nicht Query Builder eins verwenden. Der folgende Code ist in Ordnung, auch wenn der Benutzer Felder eingibt, die Sie nicht in Ihre Datenbanktabelle einfügen oder aktualisieren möchten:

%Vor%

Nun, egal was mit der FORM hier passiert wird, nur name und email werden aktualisiert.

Hoffe, diese vollständige @ ginopane Antwort

    
sobhan 06.11.2016 14:40
quelle

Tags und Links