p140 バリデータを作成する
例えば、バリデーションエラーがあったときフォームにリダイレクトではなく、別の処理をしたい。フォーム以外の値をチェックしたいときに自分でバリデータを用意する。
コントローラのvaridateメソッドを呼び出さずにValidatorクラスのインスタンスを作成して処理することでカスタマイズできる。
基本的にvalidator::make()
に連想配列と検証ルール(とエラーメッセージ)を渡せばバリデーションできる。
コントローラにuse文を追加し、バリデータインスタンスを作成する。
別のページにリダイレクトするときはredirect()->withErrors($validator)->withInput();
のようにすればエラーと入力値を返せる。
フォームのバリデーションをする場合は$request->all()
を、クエリをバリデーションするときは$request->query()
を渡す。
<?php use Validator; ... $validator = Validator::make(検証する配列,検証ルールの配列); if( $validator->fails()){ // エラー処理 }
バリデーションルールを段階的に設定したい(例えば、整数で入力してください→10以上で入力してください等)ときは$validator->sometimes(検証する項目,検証ルール,クロージャ);
が用意されている。
クロージャで真偽値を返すと、falseの場合にsometimesの検証ルールが追加される。