こんにちは!
今回は、LaravelのValidatorクラスを利用したバリデーションの作成方法を解説していきます。
Validatorクラスによるバリデーションは、フォームへリダイレクトさせずに別の処理を実行したい場合やpostの値以外でバリデーションを実行したい場合に適しています。
Validatorクラスは業務で使うことが多いので、今回アウトプットとして解説していきます。
Validatorクラスの利用
実装例
早速ですが、まずは実装例から見ていくことにしましょう。
// Controller
use Illuminate\Support\Facades\Validator;
// または
use Validator; // Validatorだけでも実行できる
public function postValidates(Request $request)
{
$validator = Validator::make($request->all(), [‘name’ => ‘required’, age = ‘integer|between:0,150’, ‘sex’ => ‘max:1’]);
if ($validator->fails()) {
return redirect(‘/errormessage’)
->withError($validator)
->withInput()
} else {
return view(‘sample.index’, [‘msg’ => ‘OK’]);
}
}
実装例の解説
Validator::make(‘値の配列’, ‘検証ルールの配列’);でValidatorクラスのメソッドを作成します。
上の実装例では’値の配列’はリクエストとしてフォームから送られてきた$requestの全ての値を取り出して引数として入れています。
バリデーションの成否はfail()で判定します。
バリデーションの成否判定の処理はif ($validator->fails()) {失敗時の処理} else {成功時の処理}でバリデーションに引っかかった時と成功したときの処理を書いていきます。
fails()はバリデーションの失敗をtrueで返し、成功をfalseで返すbool型のメソッドになっています。
使用している検証ルールでは下記を使用しています。
- required・・・何かしらの値が入っているか
- integer・・・integer型のデータが入っているか
- between:0,150・・・0〜150の値が入っているか
- max:1・・・最大値が1であるか
とりあえず、Validatorクラスの基本はこんなところです。
ではでは!
コメント