【Laravel】Validatorクラスによるバリデーションの書き方

Laravel

こんにちは!

今回は、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クラスの基本はこんなところです。

ではでは!

コメント

タイトルとURLをコピーしました