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');
※流用される場合は自己責任でお願いします。