Jedes Mal, wenn ich laufe einen Code wie dies geschiehtWarum funktioniert das Speichern nur zum Erstellen und nicht zum Aktualisieren?
$foo = Foo::find(1);
echo $foo->bar; // echoes 400
$foo->bar = 300;
echo $foo->bar; // echoes 300
$foo->save();
echo $foo->bar; // echoes 300
$foo = Foo::find(1);
echo $foo->bar; // echoes 400 - it didn't save! no changes to the table
Nichts. Aber das funktioniert:
$foo = new Foo;
$foo->bar = 200;
echo $foo->bar; // echoes 200;
$foo->save(); // a new entry is added to my table
ich nicht aktualisieren kann (Änderungen am Modell vorgenommen werden, aber es speichert nicht), aber das Hinzufügen neuer Einträge funktioniert. Warum?
(Foo Modell-Klasse erweitert, eine Bar ist eine Spalte)
Sind Sie sicher, dass Ihr Objekt eine ID-Schlüssel haben? Sonst weiß Laravel nicht, welche Zeile aktualisiert wird. –
Welche Version von Laravel verwenden Sie? Welche Datenbank verwendest du? Können Sie den Inhalt Ihres Modells auch posten? –
Das einzige Szenario, das ich denken kann, wo 'save()' gewohnt * speichern *, wenn Sie die 'bar' von Massen assignement schützen! – teeyo