Laravelのバリデーションルールは、実務でもフォームの入力検証で必ず使われます。 この記事では、Laravel 12に対応したバリデーションルールの一覧を、実務で使いやすいようにまとめました。
基本の使い方
$request->validate([
'email' => ['required', 'email'],
'password' => ['required', 'min:8'],
]);
基本的なルール
| ルール | 意味 |
|---|
| required | 必須項目 |
| nullable | null可能 |
| string | 文字列型 |
| integer | 整数 |
| numeric | 数値(完全な整数でなくても良い) |
| boolean | true/false |
| array | 配列 |
| json | JSON形式 |
文字列の検証
| ルール | 意味 |
|---|
| email | メールアドレス形式に一致 |
| url | URL形式に一致 |
| alpha | 英字のみ |
| alpha_num | 英数字のみ |
| min:x | x文字以上 |
| max:x | x文字以下 |
| between:min,max | 最小と最大の間 |
| size:x | x文字ちょうど |
数値の検証
| ルール | 意味 |
|---|
| min:x | x以上 |
| max:x | x以下 |
| between:min,max | 最小と最大の間 |
| digits:x | x桁の数値 |
| digits_between:min,max | x~y桁の数値 |
デートの検証
| ルール | 意味 |
|---|
| date | 日付形式に一致 |
| before:date | 指定日付より前 |
| after:date | 指定日付より後 |
| before_or_equal:date | 指定日付まで |
| after_or_equal:date | 指定日付以降 |
配列の検証
| ルール | 意味 |
|---|
| array | 配列型かどうか |
| distinct | 値が重複していないか |
| in:foo,bar | 指定値のいずれか |
| not_in:foo,bar | 指定値以外 |
| size:x | アレイの要素数x個 |
ファイルの検証
| ルール | 意味 |
|---|
| file | ファイルかどうか |
| image | 画像ファイルかどうか |
| mimes:jpg,png | ファイル拡張子を指定 |
| mimetypes:text/plain | MIMEタイプを指定 |
| max:x | ファイルサイズの最大値(KB) |
特殊なルール
| ルール | 意味 |
|---|
| confirmed | foo_confirmationと一致必須 |
| different:field | 指定項目と異なる値であること |
| same:field | 指定項目と同じ値であること |
| regex:/pattern/ | 正規表現で検証 |
注意点・ベストプラクティス
- ルール順に意味がある
required|string|min:8など、意図的な順番で書くと読みやすい
- ケースによってはRequestクラス化も正当
- カスタムメッセージも添えるとより完成度高い
まとめ
Laravelのバリデーションルールは、単に対役を記憶するだけでなく、正しい使い方を理解することが重要です。
実践で使いながら、自分のチートシートを作っていくと、より実用性の高いコードが書けるようになりますよ!
※この記事はLaravel 12に基づいていますが、Laravel 10/11でも基本的に使用可能です。