2016-06-30 12 views
3

return response()->json($categorie);を使用してJSON文字列を返そうとすると空の応答が返されます。 echoreturnを置き換えた場合、ブラウザ出力として 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"}が表示されます。Laravel 5.2はJSONとして応答を返しません

私はLaravel 5.2を使用しています。

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: は、ここに完全なコードのコントローラーは何も返しません。 returnはすべて空の出力を生成します。 なぜですか?

+1

'カテゴリーが表示されます::($のID)を見つける - > toJson()'ので、同じようにそれをしようとし – GONG

+0

同じ結果です。 'return'は空で、' echo'はヘッダを出力に渡します。 – Tim

+0

、あなたのJSコードを提供してください、その型ミスマッチかもしれません。あなたは 'dataType: 'json' //を持っていますか? – GONG

答えて

0

http://laravel-tricks.com/tricks/return-json-responseからqoute:公式ドキュメントで

http://laravel.com/docs/responses#special-responsesは、JSONレスポンスを作成するために、応答:: JSON(...)を行う必要があります。実際には、返された値が、擬似モデルなどの配列可能なインターフェイスまたはjsonableinterfaceの配列またはインスタンスであれば、それを返すことができます。それは魔法のようにjsonになります。

0

toJson()メソッドを使用する必要があります。

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

toJson方法はJSONにコレクションを変換します。あなたの現在のコードで

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

: - あなたはここにreturnを記述する必要があります。上記のコードで

あなたはエコー書いた場合、

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

それは

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"} 
関連する問題