Webサイトの会員情報の登録を行う際に、「パスワード」と「確認用パスワード」の入力を求められることがあります。
本人が想定したパスワードを入力したか確認するためのものなので、「パスワード」と「確認用パスワード」で異なる入力値だった場合、エラーになりますよね。
本来なら「if分を追加して入力値が一致しているかどうかチェックする」など、プログラムを書く必要があります。
Laravelだとバリデーションでちょっと記述するだけで、簡単に「パスワード」と「確認用パスワード」の一致チェックを行えます!
この記事ではバリデーションを行う上での注意点もあわせて紹介します。
ビューファイルの記述方法
入力フォームの<input>タグの書き方は以下の通りです。
パスワード:<br>
<input type="password" name="password"><br>
確認用パスワード:<br>
<input type="password" name="password_confirmation"><br>
「パスワード」と「確認用パスワード」の一致チェックを行う場合、入力フォームの<input>タグのnameに注意しなければなりません。
今回の場合、「パスワード」のnameが「password」。
「確認用パスワード」のnameが「password_confirmation」にしていますね。
1つ目の「パスワード」のnameが「xxxx」だった場合、「確認用パスワード」のnameは「xxxx_confirmation」にする必要があります。
この書き方をすることで、後々のバリデーションを簡単に行えるようになります。
間違えないようにしましょう!
コントローラーファイルのバリデーション記述方法
次にバリデーションの記述方法を紹介します。
$request->validate([
'password' =>['required','confirmed']
]);
上記は「required(必須チェック)」と「confirmed(確認用と一致チェック)」の2つを記述してます。
この「confirmed」と書くだけで、「password」と「password_confirmation」の入力値が同じか否かチェックを行うことができます。
これだけで「パスワード」と「確認用パスワード」の一致チェックのバリデーションは終わりです!
まとめ
「パスワード」と「確認用パスワード」の一致チェックのバリデーションの書き方について紹介しました。
使うバリデーションは以下の「confirmed」です。
confirmed
ビューファイルでのinputタグの書き方はこちらです!
パスワード:<br>
<input type="password" name="password"><br>
確認用パスワード:<br>
<input type="password" name="password_confirmation"><br>
1つ目の「パスワード」のnameが「xxxx」だった場合、「確認用パスワード」のnameは「xxxx_confirmation」にする必要があります。
注意点さえ押さえておけば、すごく便利なバリデーションですね!
ビューファイルのinputタグの書き方だけ気をつけて、「confirmed」を活用しましょう!