p134 フォームリクエスト
一般的なバリデーションはコントローラ内に書かれるが、バリデーションはビジネスロジックとは切り離したい。
そこでRequestクラスを継承したFormRequestクラスでバリデーションを行う。
作成はartisanコマンドで。
php artisan make:request クラス名
実行すると/Http/Requests/にファイルが作られる。
作成されたクラスにはauthorize()
とrules()
メソッドがある。
authorize()
ではパスをチェックして利用するパス以外から利用できないようにしたりする。
rules
にはバリデーションの検証ルールを設定する。
利用するにはcontrollerにuse文を追加し、postメソッドの引数をpost(フォームリクエストクラス $request)
のように書き換える。
バリデーションエラーのメッセージを書き換えるには
フォームリクエストクラスにmessages()
メソッドを追加し、項目名.検証ルール名 => 'メッセージ'
のように配列を返すようにする。