1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelのバリデータ【個人的なお勉強アウトプット】

Last updated at Posted at 2022-03-24

参考図書

バリデーション機能はFormRequestに用意されているvalidateメソッドを使ってバリデーションが行われる。
validateはRequestインスタンスと検証ルールの引数を渡すことで自動的にフォームの値のチェックを行い問題があればGETのページにリダイレクトする。
例)コントローラでバリデーションを行う

app/Http/Controllers/HelloController.php
public function post(Request $request){
$validate_rule = [...]
$this->validate($request, $validate_rule);
}

これは便利だが、場合によってはエラーがあったときにフォームページにリダイレクトせずに別の処理を行わせたい場合もある。
またフォーム以外の値でバリデーションチェックを行いたい場合もある。
その場合、バリデータは独自に用意して処理することも可能。
LaravelではValidatorというクラスとして用意されている。

app/Http/Controllers/HelloController.php
use Validator;

public function post(Request $request){
$validator = Validator::make($request->all(),[
...バリデーションルール
]);

if($validator->fails()){
return redirect('/hello')
->withErrors($validator)
->withInput();
}
}

バリデータはValidatorインスタンスをmakeメソッドで作成することで使える。
第一引数には値の配列、第2引数にはルールの配列。
failsはValidatorクラスにあるメソッド。バリデーションチェックに失敗したらtrue。
成功パターンはpassesメソッドがある。

redirectで指定のパスにリダイレクト。
withErrors($validator)でエラーメッセージをリダイレクト先で引き継げる。
withInputはフォームの値を引き継げる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?