LoginSignup
1
2

More than 5 years have passed since last update.

Laravelのバリデーション処理

Posted at

Laravel5.4のバリデーションについて記載

1.Routeにフォームの送信先を記述

Route::post('/formurl/','ServiceController@validateRequest');

2.Controllerにvalidateを行う項目と内容を記述

public function validateRequest(Request $request){
    $this->validate($request, [
        //処理内容の指定(useridは必須、最大4文字)
            'userid' => 'required|max:4',
        ],

        //エラー文言の指定
        [
           'userid.required' => ':attributeは必須です。',
           'userid.max'  => ':attributeは4文字を超えています。',
        ], 

        //attributeに表示される表示名称の指定
        [
            'userid' => 'ユーザーID',
        ]);
}

3.続いてエラー処理の記述
エラーメッセージ、入力内容をリダイレクト先に付与

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

     }

4.失敗時にリダイレクト先でエラーメッセージの取得
index.blade.phpでの取得

     @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach

Controllerや、view composerで取得したい場合

     //エラーメッセージ
     $_session = session()->all();
     $_error_msg = $_session['errors']->default;

     //前回の入力内容
     $_session = session()->all();
     $_old_input = $_session['_old_input'];

以上

1
2
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
2