How to get $request->Inhalte in Laravel 5.0?
Ich bin neu in Laravel und bin mit einigen Schwierigkeiten halten Sie das JSON-ich werde Entsendung zu einer REST-api, die ich Schreibe.
UPDATE
Für die Klarheit dieses:
$content = json_decode($request->content);
var_dump($content);
exit;
Gibt auch null
Original
Hier mein store
Methode:
public function store(Request $request)
{
//Creates a new user based on the passed JSON
//I appreciate this wont work as it's json encoded, but this was my
//last test.
//Previously I'd tried: $content = json_decode($request->content);
//but that was also null :(
$user = new User();
$user->name = $request->content["name"];
$user->email = $request->content['email'];
$user->password = $request->content['password'];
var_dump($request); exit;
//Commit to the database
$user->save();
}
Hier ist, was ich bin versucht zu senden (via: ich hab Nur Ruhe-client):
{
"name":"Steve Jobs 2",
"email":"[email protected]",
"password":"something123",
}
Und hier ist das Ergebnis, wenn var_dump gerendert wird als die Antwort:
protected 'cacheControl' =>
array (size=0)
empty
protected 'content' => string '{
"name":"Steve Jobs 2",
"email":"[email protected]",
"password":"something123",
}' (length=85)
protected 'languages' => null
protected 'charsets' => null
protected 'encodings' => null
Also ich kann das content
innerhalb der Request
Objekt, aber egal was ich versuche, es ist immer null. Meine Frage ist also, wie auf der Erde tun ich auf, die?!
Dank!
- Der content ist ein JSON-kodierten string. Sie müssen verwenden
json_decode
erstellen Sie ein PHP-Objekt - Wie bereits in den Kommentaren über den neuen User () - Anweisung, die ich bereits probiert habe: $content = json_decode($request->Inhalt), aber das zu null zurück. 🙁
- Versuchen
Input::json();
- versuchen
$request->input('content');
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist kein gültiges JSON-so Laravel nicht in der Lage sein, Sie zu entschlüsseln.
Entfernen Sie die nachfolgende Komma von hier aus
[...]ng123",
Dann werden Sie in der Lage, verwenden Sie eine der oben genannten Methoden in den oben genannten Antworten wie (vorausgesetzt, Sie senden Ihre Anfrage als application/json)
Wenn Sie nicht senden Sie die Anfrage als application/json, verwenden Sie $request->json()
Möchten Sie vielleicht die Verwendung
$request->getContent()
.Laravel in der Regel dekodiert Ihre JSON automatisch. Sie können
input()
um Werte abzurufen:Dort gibt es auch einen kürzeren Weg, können Sie einfach dynamisch den Zugriff auf Ihre Eigenschaften, auf die Anfrage-Methode: (das funktioniert möglicherweise nicht mit bestimmten Namen)
Es gibt aber auch andere nette Funktionen zur Verfügung. Zum Beispiel
all()
oderonly()
wird wieder ein assoziatives array mit alle Ihre Eingabewerte:Content-Type: .../json
?$request->json()
für michAls einen geschützten variable /Objekt, müssen Sie rufen Sie die vordefinierte Methode der Klasse.
Können Sie die folgenden verwenden.