Fehler: Aufruf der undefinierten Methode Illuminate \ Http \ Request :: put ()
Morteza Negahi
put () ist eine Erfassungsmethode, $ request-> all () gibt ein Array zurück.
Joel Hinz
3
Das Anforderungsobjekt verfügt tatsächlich über die Methoden replace () und merge (). Im Allgemeinen bevorzuge ich diese. In meinem Kommentar zur Frage finden Sie eine SO-Antwort dazu.
Joel Hinz
@JoelHinz, ich dachte, dass sie in Laravel 5 nicht funktionieren, weil ich nur wenige Posts gesehen habe, in denen Jungs Probleme mit der Verwendung dieser Methoden hatten. Aber ich habe mir den RequestQuellcode von L5 angesehen und kann diese Methoden sehen. Vielen Dank.
Alexey Mezenin
4
Kein Schweiß. Ihre Antwort ist jedoch immer noch falsch. Die Methode replace () ersetzt die gesamte Eingabe. Sie müssen merge () verwenden, wenn Sie nur einen Wert ersetzen möchten.
Joel Hinz
7
Wenn Sie die Anfrage anpassen müssen
$data = $request->all();
Sie können den Namen des Feldes und den Wert übergeben
Wenn Sie benutzerdefinierte Anforderungen zur Validierung, zum Ersetzen von Daten zur Validierung oder zum Festlegen von Standarddaten (für Kontrollkästchen oder andere) verwenden, verwenden Sie die Überschreibungsmethode prepareForValidation().
Tolle Antworten hier, aber ich musste einen Wert in einer JSON-Anfrage ersetzen. Nachdem ich mich ein wenig mit dem Code befasst hatte, kam ich auf den folgenden Code. Lass es mich wissen, wenn ich etwas Dummes mache.
Wenn Sie eine Eigenschaft in der Anforderung aktualisieren müssen, empfehle ich Ihnen, die von Laravel verwendete Ersetzungsmethode aus der Anforderungsklasse zu verwenden
$request->replace(['property to update'=> $newValue]);
Antworten:
Verwendung
merge()
:Einfach! Es ist nicht erforderlich, das Ganze
$request->all()
in eine andere Variable zu übertragen.quelle
Versuchen zu:
Ein anderer Weg, es zu tun:
Danke an @JoelHinz dafür.
Wenn Sie verschachtelte Daten hinzufügen oder überschreiben möchten:
Wenn Sie kein
Request $request
Objekt injizieren , können Sie stattdessen den globalenrequest()
Helfer oder die\Request::
Fassade verwenden$request
quelle
Request
Quellcode von L5 angesehen und kann diese Methoden sehen. Vielen Dank.Wenn Sie die Anfrage anpassen müssen
Sie können den Namen des Feldes und den Wert übergeben
und schließlich die neue Anfrage weitergeben
quelle
Wenn Sie benutzerdefinierte Anforderungen zur Validierung, zum Ersetzen von Daten zur Validierung oder zum Festlegen von Standarddaten (für Kontrollkästchen oder andere) verwenden, verwenden Sie die Überschreibungsmethode
prepareForValidation()
.Ich hoffe, diese Informationen werden jemandem nützlich sein.
quelle
Es funktioniert für mich
Ausgabe überprüfen
quelle
Tolle Antworten hier, aber ich musste einen Wert in einer JSON-Anfrage ersetzen. Nachdem ich mich ein wenig mit dem Code befasst hatte, kam ich auf den folgenden Code. Lass es mich wissen, wenn ich etwas Dummes mache.
quelle
Wenn Sie eine Eigenschaft in der Anforderung aktualisieren müssen, empfehle ich Ihnen, die von Laravel verwendete Ersetzungsmethode aus der Anforderungsklasse zu verwenden
quelle