0
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 5 years have passed since last update.

Laravel バリデーション メモ

0
Last updated at Posted at 2020-03-11

※個人的なメモです。

フォームの入力にたいしてバリデーションするならフォームリクエスト、またはValidatorクラスのメソッドを使う

下記フォームリクエスト作成コマンド

php artisan make:request CreateUserRequest

保存時とか特定のタイミングでエラー検証したい場合はValidatorを使う。
コントローラ等で下記コードを記載すればよい

use Validator;

errorsメソッド

# 全てのエラーメッセージを配列で取得
$errors->all()

# 指定した項目の初めのエラーメッセージを取得
$errors->first('項目名')

# 指定した項目のエラーメッセージ全てを取得
$errors->get('項目名')

バリデーション 検証ルール メソッド

# true, on, yes, 1をチェック(チェックボックス等で使用)
accept

# アドレス指定されたドメインが実際に有効かどうかをチェック
active_url

# url形式かどうかをチェック
url

# 指定した日付より後かチェック
after: 日付

# 指定した日付が同じか、それより後かをチェック
after_or_equal: 日付

...その他多数あり

バリデーション結果検証メソッド

failsメソッド

# バリデーションがエラーになっていればtrueを返す 
$validator->fails()

passesメソッド

# バリデーションが成功していればtrueを返す(failsメソッドの逆)
$validator-> passes()

バリデーション エラーとフォームの値をリダイレクト先に表示

withErrorsとwithInputの使い方

下記のように書くとリダイレクト先にエラーメッセージとフォームの値を保持できる

    $validator = Validator::make($request->all(),[
      'name' => 'required',
      'mail' => 'email',
      'age' => 'numeric|between:0,150',
    ]);
    
    if($validator->fails()){
      return redirect('/hello')->withErrors($validator)->withInput();
    }

クエリーに対してバリデーション

queryメソッドを使う 

    $validator = Validator::make($request->query(),[
      'id' => 'required',
      'pass' => 'required'
    ]);
0
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
0
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?