Laravel 5: bei fortbestehen der Formular-Daten, _token bewirkt, dass der Masse die Abtretung Ausnahme
Wenn ich versuche, Sie zu bestehen-Formular-Daten, Laravel wirft eine Masse Zuordnung Ausnahme.
In der Ansicht ich bin mit {!! form::open(...) !!}
was ich wissen schafft _token
als hidden-Feld.
Wenn das Formular die Daten an den controller gesendet, ich bin mit
$data = Input::all();
$order = Order::create($data);
$order->save();
Sollte ich hinzufügen ein Feld für _token
in meiner Datenbank? Oder bin ich verursacht einen Fehler durch etwas anderes falsch?
Nicht verwenden Masse Zuordnung, eine Funktion, die ein $request-Objekt als parameter, und weisen Sie das, was notwendig ist, um das Modell. Es wird Ihnen einen Ort, um die Liste Ihrer Felder als wenn es war $fillable Eigenschaft, aber auch (a) Sie können Holen Sie mehr Flexibilität und (b) suchen Sie können in Ihrem Projekt die Funktion Anrufe, wenn nötig. Mein problem bei der Verwendung von Masse-Zuordnung war ein Fall, wenn $fillable array sollte unterschiedlich sein, je nach Benutzer-Rolle. Ich wünschte, ich würde nicht verwenden Masse Zuordnung auf den ersten Platz.
wenn Sie anrufen
wenn Sie anrufen
Order::create($data);
es speichert Sie nicht haben, um save()
danach. Und dies ist ein weiterer Grund für die Verwendung von Masse-Belegung. Sie können kontrollieren, wo Sie das Modell speichern.InformationsquelleAutor Brent Connor | 2015-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Masse Zuordnung Ausnahme ist in der Regel verursacht, weil Sie nicht angeben, die
fillable
(oderguarded
im Gegenteil) Attributen in Ihrem Modell. Tun Sie dies:Diese Weise müssen Sie sich nicht auch sorgen machen
_token
weil nur die angegebenen Felder werden ausgefüllt und gespeichert in der db egal, was andere Sachen, die Sie übergeben, um das Modell.Class Order extends Model { protected $table = 'orders'; protected $fillable = ['field1', 'foo', 'bar'];
Ja. Auch der Kurs statt
field1
etc Sie sollten geben Sie Ihre tatsächlichen Parametern. Dies ist nur ein Beispiel.InformationsquelleAutor lukasgeiter
oder
InformationsquelleAutor Yash
Stellen Sie sicher, Sie setzen die $fillable oder $bewacht in der app\Order.php Datei-und nicht die app\Http\Controllers\OrderController.php Datei.
InformationsquelleAutor Keith Turkowski