LaravelではレスポンスをJSON形式で返す方法2つある
response()->json()
まずは公式ドキュメント(5.1LTS)に記載されている方法。
jsonメソッドは自動的にContent-Typeヘッダーをapplication/jsonにセットし、同時に指定された配列をjson_encode PHP関数によりJSONへ変換します。
public function index()
{
return response()->json(['apple' => 'red', 'peach' => 'pink']);
}
これにより
{
'apple':'red',
'peach':'pink'
}
がレスポンスされる。
ドキュメントになるとおり、
Content-Type
もちゃんとapplication/json
にしてくれる。
配列をreturnする
そして、もう1つの方法。
例えばこんなコードがあるじゃろ。
public function index()
{
return ['apple' => 'red', 'peach' => 'pink'];
}
んでレスポンスは、、、
{
'apple':'red',
'peach':'pink'
}
こうなる。
加えてContent-Type
もちゃんとapplication/json
にしてくれる。
まとめ
JSON形式で返す時は「配列をreturnする」方法にしてます。
Laravelってこうゆう事ができるからやめられない、止まらない。