Laravel バリデーションの応用7選をマスターしよう!

シェアしてね〜🤞

本記事ではLaravelで使うValidationの応用編の7つを紹介します。

例えばメールアドレスを入力する際に、ひらがなやカタカナなどの文字を使うことはないと思います。 そこで入力できる内容を限定しようというのがバリデーションです。

本記事では、応用編のバリデーションを紹介していきますので是非ご活用ください!

※基礎的でよく使うバリデーションについては下記の記事で紹介しております。 参考→Laravel バリデーションの基礎9選をマスターしよう!

※具体的なコードの記述方法については下記の記事で紹介しております。 参考→Laravelで簡単にバリデーションを実装してエラーメッセージを表示してみる(日本語化も)

本記事で扱うバリデーションは下記の7つです。

  1. starts_with:〇 
    • 〇から始まっているかどうか
  2. after_or_equal:tomorrow
    • 明日もしくは明日以降の日付かどうか
  3. url
    •  URLの形式であるかどうか
  4. digits_between:〇, □(数字)
    • 〇桁~□桁の間であるかどうか
  5. mimes:〇〇,□□(拡張子)
    • 〇〇や□□に指定した拡張子の形式かどうか
  6. confirmed
    • (パスワードなどの)値が同じであるかどうか
  7. unique
    • 入力された内容が一意(オンリーワン)であるかどうか

「starts_with:〇」で〇から始まる値に限定するバリデーション

電話番号は国内であれば必ず「0」から始まりますよね。 ということは「0」以外(例えば「a」など)で始まっているものは国内の電話番号として機能しません。

この場合、「0」以外から始まるものをはじくことができれば、上記のように機能しない内容を少しでも防ぐことができますよね。

「starts_with:0」を設定すると下の画像のように、「0」以外から始まる内容を入力して「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

starts with

尚、エラーメッセージは英語で表示されますが、日本語へ変更やカスタマイズも可能です。

詳しくは下記の記事で紹介していますので必要に応じて参照ください。

参考→Laravelで簡単にバリデーションを実装してエラーメッセージを表示してみる(日本語化も)

「after_or_equal:tomorrow」で明日もしくは明日以降の日に限定するバリデーション

これは予約フォームで予約日付を入力する場合によく使われます。

「after_or_equal:today」で設定すれば本日以降の日に限定するバリデーションとして使えます。

「after_or_equal:tomorrow」を設定し、過去の日付を入力して「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

after or equal tomorrow

「url」でURLの形式に限定するバリデーション

URLの形式以外の入力内容のリクエストをはじいてくれます。

例えば下の画像のように「abcdefg」と入力して「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

url

「digits_between:〇, □(数字)」で〇桁~□桁の間に限定するバリデーション

これはパスワードによく使われます。 パスワードの設定で「4文字以上、8文字以下でパスワードを設定してください」というエラーを見たことがある人は多いのではないでしょうか。

例えば下の画像のように3桁だけを入力して「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

digits

「mimes:〇〇,□□(拡張子)」で〇〇と□□の拡張子に限定するバリデーション

各種申請のフォームで添付資料が必要な場合によく使われます。

画像等の資料を添付する場合、このバリデーションを設定することよってデータの拡張子を限定することができます。

今回はjpegとtxtの拡張子に限定しています。

この状態でpdfのデータを添付して「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

mimes1

そこで拡張子がtxtのデータを添付して「登録」をクリックすると、リクエストが受け付けられてデータが登録されます。

mimes2

「confirmed」でパスワードなどの値と同じ値に限定するバリデーション

これはみなさん一度は経験されたことがあるのではないでしょうか。 パスワードの入力ミスを防ぐために非常に有効な手段の一つと言えます。

それぞれ違うパスワードを入力した状態で「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

confirmed

「unique」で入力された内容が一意(オンリーワン)の値に限定するバリデーション

大体のサービスでは同じユーザーIDのアカウントは作れないですよね。 つまり「unique」のバリデーションが使われる機会は多いということが言えます。

すでに登録されているユーザーネームと同じユーザーネームを入力した状態で「登録」をクリックしてもエラーとなり、リクエストが受け付けられないようになります。

unique

以上、今回の記事ではLaravelで使うValidationの応用編の7つを紹介しました。

Laravelのバリデーション基礎9選と併せてご活用ください!

参考→Laravel バリデーションの基礎9選をマスターしよう!

シェアしてね〜🤞