Laravel

Laravel初心者ガイド:入力フォームのバリデーションチェック方法を徹底解説【Validator活用】

今回はLaravelを使って、入力フォームでのバリデーションチェックの方法を一緒に学んでいきましょう。バリデーションチェックは、ユーザーがフォームに入力したデータが適切かどうかを確認する重要なプロセスです。これをしっかり行うことで、誤ったデータの保存を防ぎ、アプリケーションの信頼性を高めることができます。

まずは入力フォームview(/register)の準備

まずは、ユーザーがデータを入力するフォームを作りましょう。ここでは例として、「名前」「住所」「年齢」「電話番号」という4つの入力項目を設けます。「名前」と「電話番号」は必須入力(「※」印の入力項目)にします。フォームはHTMLで記述し、LaravelのBladeテンプレート機能を使ってエラーメッセージも表示できるようにしておきましょう。

HTMLの基本的な構造は以下のようになります。@csrfはセキュリティ対策のために重要なので、忘れずに記述してください。

    //入力エラーメッセージ
    @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の記述

次に、ユーザーがフォームに入力したデータのチェックを行います。Laravelでは、Validatorファサードを使って簡単にバリデーションを実装できます。以下のルールを設定しましょう。

  • 名前(namae):必須入力、最大255文字以内
  • 年齢(nenrei):最大3文字(桁)以内
  • 住所(add):最大255文字以内
  • 電話番号(tel):必須入力、最大20文字以内

 
これらのルールをValidator::makeメソッドに設定します。もしバリデーションエラーが発生した場合は、フォームにリダイレクトし、エラーメッセージを表示させます。

    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)の記述

Laravelでは、URLとコントローラのアクションを結びつけるためにルーティングを設定します。ここでは、/registerというURLで上記のフォームを表示するように設定します。

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

まとめ

以上で、Laravelを使用した基本的な入力フォームのバリデーションチェックの流れを把握できました。これらのステップを踏むことで、安全かつ効率的なウェブアプリケーションの開発が可能になります。最初は難しく感じるかもしれませんが、ぜひ挑戦してみてください!

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