スポンサーリンク

[Laravel] フォームリクエストクラスでバリデーションする

概要

フォームリクエストクラスを使って、バリデーションの機能をコントローラー側で処理するのではなく、その手前にバリデーションを行うようにします。

実践

フォームリクエストクラス

 php artisan make:request SampleRequest

上記のように、artisanコマンドを実行すると、リクエストクラスのファイルが”app\Http\Requests”に作成されます。

その後、 authorizeメソッドとrulesメソッドの中身を以下のように編集しました。

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required|max:32',
            'age' => 'required|numeric'
        ];
    }

authorizeメソッドは、バリデーションを行う場合にtrueを返すように設定します。
どのような時に使うのかというと、ユーザー認証されているかや、権限を満たしているかを確認し、満たしているときにのみ、バリデーションを行うよう設定できます。

rulesメソッドは、戻り値にバリデーションルールの配列を渡します。

コントローラー

    public function receive(SampleRequest $request){
        return view('receive');
    }

コントローラー側では、リクエストを受信するアクションメソッドの引数に、作成したフォームリクエストクラスの引数を設定することで、使用することができます。

実行結果