2017-01-03 8 views
0

Lassen Sie sagen, dass dies die Nutzlast eines Antrags ist:Wie erhalten Sie primitive Json-Anfrage-Payload in Laravel 5?

{name : 'John', age: 42} 

Sie alle Paramter mit Request::all() bekommen.

Wie bekomme ich Anfrage Payload richtig, wenn Payload ein primitiver Typ wie true oder 42 ist?

Request::getContent() empfängt sie als Zeichenfolgen, ich möchte, dass sie auch im richtigen Typ sind.

Antwort

3

können Sie json_decode verwenden, um eine rohe json Nutzlast auf ein Array zu entschlüsseln:

Route::post('/request', function() { 
    $payLoad = json_decode(request()->getContent(), true); 

    dd($payLoad['name']); 
}); 

Und Sie sollten

John 

erhalten oder json_decode können Ihre Nutzlast von einem Abfrageparameter oder Post zu dekodieren Daten:

Route::get('/primitive', function() { 
    $payLoad = json_decode(request()->get('payload')); 

    dd($payLoad); 
}); 

Schlagen:

http://app.dev/primitive?payload={%20%22name%22:%20%22John%22,%20%22age%22:%2042,%20%22male%22:%20true%20} 

Sie sollten

enter image description here

+0

Payload ist kein Schlüsselwertpaar erhalten. Nur ein JSON-Wert im Hauptteil der POST-Anfrage. Ich kann 'json_decode (request() -> getContent())' dann verwenden. Danke – zarax

+0

Ja, es ist das Gleiche. Bearbeitet, um zu zeigen, wie. –