EloquentモデルをJSONとしてブラウザーにどのように返しますか?以下の2つの方法の違いは何ですか?両方ともうまくいくようです。
#1:
return Response::json($user->toArray());
#2:
return $user->toJson();
ただし、送信される実際のデータは同じです...
#1送信Content-Type:application/json
ブラウザへ
#2送信Content-Type:text/html
#1はより正確ですが、Javascriptに依存します: 正しいJSONコンテンツタイプは何ですか?
ただし、モデルを返す方がはるかに簡単です。 JSONとして自動的に返され、Content-Typeが正しく設定されます。
return $model;
#1では、最初にEloquentを配列に変換してから、JSONに変換しますが、これは少し冗長に思えます。
それを念頭に置いて、JSONを呼び出し元に返す場合は#2を使用します。
また、L4では、Eloquentモデルが文字列にキャストされるたびに、自動的にJSONに変換されることに注意してください。したがって、ドキュメントのこの例のように、ルートから直接JSONデータを返すことができます。
Route::get('users', function()
{
return User::all();
});
詳細については、 http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json を参照してください
Response::json($someArray)
は、JSONデータを返す一般的な方法です。
return $model->toJson()
は、モデルをJSONとして返すことに固有です。これは、Eloquentモデルを使用する場合の私の推奨アプローチです。