Laravel

【Laravel】入力フォームのバリデーションチェック方法(Validator)

LaravelのValidatorで入力フォームのバリデーションチェックを行う方法をご紹介します。

入力フォームview(/register)の記述

※フォーム(登録ページ)では文字列「名前」「住所」と数字「年齢」「電話番号」を入力します。「※」印の入力項目は必須入力にします

    //入力エラーメッセージ
    @include('common.errors')

        <form enctype="multipart/form-data" action="{{ url('entry') }}" method="POST">
            @csrf
                
                <div>
                    <label for="namae">名前※</label>
                    <input type="text" name="namae">
                </div>

                <div>
                    <label for="nenrei">年齢</label>
                    <input type="text" name="nenrei">
                </div>

                <div>
                    <label for="add">住所</label>
                    <input type="text" name="add">
                </div>

                <div>
                    <label for="tel">電話番号※</label>
                    <input type="text" name="tel">
                </div>

                <div>
                    <button type="submit">登録</button>
                </div>

        </form>

入力フォームのバリデーションチェックを行うControllerの記述

※バリデーションチェックを以下の通りで行います。

  • 名前(namae)=必須入力、最大255文字以内
  • 年齢(nenrei)=最大3文字(桁)以内
  • 住所(add)=最大255文字以内
  • 電話番号(tel)=必須入力、最大20文字以内
    public function entry(Request $request) {

        //バリデーションチェック
        $validator = Validator::make($request->all(), [
            'namae' => 'required|max:255',	//必須入力、最大255文字以内
            'nenrei' => 'max:3',	//最大3文字(桁)以内
            'add' => 'max:255',	//最大255文字以内
            'tel' => 'required|max:20',	//必須入力、最大20文字以内
        ]);

        //バリデーションエラーの場合
        if ($validator->fails()) {
                return redirect('/register')	//register(入力フォーム)にリダイレクト
                    ->withInput()
                    ->withErrors($validator);
        }
  
        //以降登録処理を記述…

    }

Route(ページURL)の記述

※※「https:// ~ /register」にアクセスすると入力フォームが表示されます。ページURLは必要に応じて変更して下さい。

Route::get('/register','EntryController@register');

 
 
※流用される場合は自己責任でお願いします。