Laravel PHP サーバサイド

Laravelでモデルをレスポンスとして返すならResourcesを使うべし

どうも、シローです。

今回はLaravelでモデルデータをAPIとして返す場合は、Resourcesを使うと便利という内容です。

Laravel Resourcesとは

APIでモデルデータをJSONデータとして返す場合、キー名をキャメル<=>スネークの変換や出力したくないデータを除外、データのフォーマットを中間で挟むケースがあります。

これらの処理を簡単に提供できる機能がLaravel Resourcesになります。

Resourceの作成

Resoucesはaritisanコマンドで以下のように作成できます。

実行したらapp/Http/Resourcesフォルダにファイルが追加されます。

Resourceの設定

app/Http/Resouces/UserResource.phpはtoArrayというメソッドを持ち、この関数の返却値がJSONレスポンスとなります。

モデルのテーブル名はスネーク型なため、ここでキー名をキャメルケースに変換したり、パスワードなどの機密データは出力しないように制御できます。

モデルデータへは$thisのプロパティでアクセスできます。

app/Http/Resources/UserResource.php

Resourceを使ってJSONレスポンスを返す

コントローラでDBからユーザ情報を取得し、Resouceを介してJSONレスポンスとして出力する例はこんな感じになります。

app/Http/Controllers/UserController.php

 

  • この記事を書いた人

シロー

Webシステムの開発のお仕事をさせて頂いております。 フリーランスの日常、Web開発に関する情報を発信しています。 趣味はゲーム、映画鑑賞、個人サービスを作ることです。

-Laravel, PHP, サーバサイド

© 2023 Shiro's secret base