Laravelでリクエストとレスポンスにはそれぞれ元からクラスが当てあられております。
1 2 3 4 5 6 |
public function create(Request $request) { //リクエストデータ全て $requestData = $request->all(); //user_nameという変数 $userName = $request->input('user_name'); |
上記のようなメソッドでリクエストパラメータ自体を受け取ることができます。
長い間このような形でリクエストパラメータを受け取っていたのですが、
- リクエストヘッダーがcontent-Type:text/html以外のケースで条件分岐が必要
- ハッシュで引きますのではなく、リクエストパラメーター自体のオブジェクトをもちその中でデータを格納する
- レスポンス形態を通常のhtmlかcsvかで分岐させたい
のような必要性があったため、Requestオブジェクトやレスポンスのラッパークラスを作った方が保守性が向上するのではないかと思っております。
検索用につかうリクエストパラメーター
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace App\Http\Requests; use App\Util\CommonUtil; use Illuminate\Foundation\Http\FormRequest; //通常のFormリクエストを継承せずに野良クラスでもいいかも class SearchRequest extends FormRequest { //余裕があれば個別のパラメーターをプロパティとして定義+特殊なフラグなど //バリデーションのクラス //何らかの条件判定のメソッド } |
レスポンスのクラス
1 2 3 4 5 6 7 8 9 10 |
<?php namespace App\Http\Response; use App\Util\CommonUtil; class CommonResponse { //通常のテンプレート or //リダイレクト or //csv or //jsonの条件分岐 } |
PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 (日本語)
HTTPリクエストとレスポンス