Laravel バリデーションルール チートシート【Laravel 12対応版】

Laravel Laravel

Laravelのバリデーションルールは、実務でもフォームの入力検証で必ず使われます。 この記事では、Laravel 12に対応したバリデーションルールの一覧を、実務で使いやすいようにまとめました。


基本の使い方

$request->validate([
    'email' => ['required', 'email'],
    'password' => ['required', 'min:8'],
]);

基本的なルール

ルール意味
required必須項目
nullablenull可能
string文字列型
integer整数
numeric数値(完全な整数でなくても良い)
booleantrue/false
array配列
jsonJSON形式

文字列の検証

ルール意味
emailメールアドレス形式に一致
urlURL形式に一致
alpha英字のみ
alpha_num英数字のみ
min:xx文字以上
max:xx文字以下
between:min,max最小と最大の間
size:xx文字ちょうど

数値の検証

ルール意味
min:xx以上
max:xx以下
between:min,max最小と最大の間
digits:xx桁の数値
digits_between:min,maxx~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/plainMIMEタイプを指定
max:xファイルサイズの最大値(KB)

特殊なルール

ルール意味
confirmedfoo_confirmationと一致必須
different:field指定項目と異なる値であること
same:field指定項目と同じ値であること
regex:/pattern/正規表現で検証

注意点・ベストプラクティス

  • ルール順に意味がある
    • required|string|min:8など、意図的な順番で書くと読みやすい
  • ケースによってはRequestクラス化も正当
  • カスタムメッセージも添えるとより完成度高い

まとめ

Laravelのバリデーションルールは、単に対役を記憶するだけでなく、正しい使い方を理解することが重要です。

実践で使いながら、自分のチートシートを作っていくと、より実用性の高いコードが書けるようになりますよ!


※この記事はLaravel 12に基づいていますが、Laravel 10/11でも基本的に使用可能です。

コメント

タイトルとURLをコピーしました