見出し画像

Laravel学習記録 #035 JSON返却を学ぶ

LaravelのJSON返却について学習したものをまとめています。

LaravelでJSON形式で返却するにはいくつかの方法があるとのこと。

JSON返却の仕方

jsonメソッドを使用する

jsonメソッドを使用することで、配列をJSONへ変換できます。
ドキュメントにも以下のように説明されています。

josnメソッドは自動的にContent-Typeヘッダをapplication/jsonにセットし、同時に指定された配列をjson_encode PHP関数によりJSONへ変換します。

https://readouble.com/laravel/10.x/ja/responses.html
public function index()
    {
        $data = [
            'id'         => '1',
            'name'       => 'testa',
            "created_at" => "2024-05-11T12:00:00.000000Z",
            "updated_at" => "2024-05-11T12:00:00.000000Z",
        ];

        return response()->json($data, 200);
    }

結果

{"id":"1","name":"testa","created_at":"2024-05-11T12:00:00.000000Z","updated_at":"2024-05-11T12:00:00.000000Z"}


配列を使用する

配列をそのまま返却する場合もJSONレスポンスに変換されます。

public function index()
    {
        $data = [
            'id'         => '1',
            'name'       => 'testa',
            "created_at" => "2024-05-11T12:00:00.000000Z",
            "updated_at" => "2024-05-11T12:00:00.000000Z",
        ];

        return $data;
    }

結果

{"id":"1","name":"testa","created_at":"2024-05-11T12:00:00.000000Z","updated_at":"2024-05-11T12:00:00.000000Z"}


Eloquentコレクションを使用する

Eloquentコレクションをそのまま返却してもJSONレスポンスに変換してくれるそうです。

public function index()
    {
        $data = User::all();

        return $data;
    }

結果

[{"id":1,"name":"testa","created_at":"2024-03-03T04:07:45.000000Z","updated_at":"2024-03-03T04:07:45.000000Z"},]


ちなみに、モデルでhiddenプロパティに登録しておけば、返却されないようです。

この記事が気に入ったらサポートをしてみませんか?