2016-06-30 12 views
3

Wenn ich versuche, einen JSON-String mit return response()->json($categorie); zurückzugeben, erhalte ich eine leere Antwort. Wenn ich die return für echo ersetzen, so werde ich HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json {"id":5,"name":"blah","parent":4,"visible":"yes","position":0,"created_at":"2016-06-29 15:23:25","updated_at":"2016-06-29 15:23:25"} als Browser-Ausgabe erhalten.Laravel 5.2 gibt keine Antwort zurück als JSON

Ich benutze Laravel 5.2. Hier ist der komplette Code:

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Categories; 

class ApiController extends Controller 
{ 
    public static function categorieGetById($id) { 
     $categorie = Categories::find($id); 
     echo response()->json($categorie); 
     // return response()->json($categorie); 
    } 
} 

UPDATE: die Steuerung nichts zurückgibt. Jeder return erzeugt eine leere Ausgabe. warum?

+1

'Kategorien anzeigen :: find ($ id) -> toJson()' es versuchen, wie so – GONG

+0

Gleiches Ergebnis. 'return' ist leer und' echo' übergibt den Header an den Ausgang. – Tim

+0

Bitte geben Sie Ihren JS-Code an, möglicherweise ist der Typ missmatch drin. Haben Sie 'dataType: 'json' // wenn es zumindest sicher ist? – GONG

Antwort

0

Sie sollten toJson() Methode verwenden.

$categorie = Categories::find($id)->toJson(); 
echo $categorie; // your json output 
return $categorie; // same json output 

Die toJson Methode konvertiert die Sammlung in JSON.

in Ihrem aktuellen Code,

$categorie = Categories::find($id); 
return response()->json($categorie); // your json output with return 

Hinweis: - Sie müssen return hier schreiben.

In obigen Code, wenn Sie schreiben Echo,

echo response()->json($categorie); 

dann wird es

HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json {"id":5,"name":"blah","parent":4,"visible":"yes","position":0,"created_at":"2016-06-29 15:23:25","updated_at":"2016-06-29 15:23:25"} 
Verwandte Themen