Requestオブジェクトとは
Illuminate\Http\Request は、アプリケーションが受け取るHTTPリクエストをオブジェクト指向で扱うためのクラスです。
フォームデータ・クエリ文字列・ファイル・ヘッダーなど、リクエストに含まれるあらゆる情報にアクセスできます。
コントローラーへのリクエスト注入
コントローラーのメソッドでIlluminate\Http\Request をタイプヒントすると、Laravelのサービスコンテナが自動的にリクエストインスタンスを注入します。
ルートパラメーターとの併用
コントローラーメソッドがルートパラメーターも受け取る場合は、Request の後にルートパラメーターを記述します。
リクエストデータの取得
すべての入力データを取得
all メソッドで、すべての入力データを配列として取得します。
HTMLフォームからのリクエストでも、XHRリクエストでも使えます。
特定のフィールドを取得
input メソッドはHTTPメソッドに関わらず、リクエストペイロード全体(クエリ文字列を含む)から値を取得します。
クエリ文字列の取得
query メソッドはクエリ文字列(URLの ? 以降)からのみ値を取得します。
input はリクエストボディとクエリ文字列の両方を対象にしますが、query はクエリ文字列のみを対象にします。
フォームのPOSTデータとURLパラメーターを区別したい場合は query を使いましょう。型付きの取得
input 以外にも、型を指定して入力値を取得するメソッドがあります。
動的プロパティ
フィールド名をそのままプロパティとしてアクセスすることもできます。入力データの一部を取得
only と except で入力データのサブセットを取得できます。
入力の存在確認
has メソッドで値がリクエストに含まれているか確認します。
filled を使います。
isNotFilled を使います。
リクエストのパスとメソッド確認
パスの取得と確認
URLの取得
HTTPメソッドの確認
isMethod でHTTPメソッドを確認できます。
ファイルアップロード
アップロードされたファイルの取得
file メソッドでアップロードされたファイルを取得します。
Illuminate\Http\UploadedFile インスタンスが返ります。
hasFile を使います。
ファイルの保存
store メソッドでファイルをストレージに保存します。
ファイル名は自動的に生成されます。
storeAs を使います。
実例:フォームデータの受け取り
ユーザー登録フォームのデータをコントローラーで受け取る例です。次のステップ
ミドルウェア
リクエストをフィルタリングするミドルウェアの使い方を振り返ります。