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でも基本的に使用可能です。

著者

Webエンジニア歴30年、フリーランスバックエンドエンジニア。

PHP歴約30年(Laravel 7年・FuelPHP 5年・CakePHP・自作FW)、
JavaScript歴約20年(React・Vue各4年)。
AWS(EC2 / CloudFront / RDS / API Gateway など)・
GCP(BigQuery)を使ったバックエンド開発を中心に、
複数の事業会社・受託案件でシステム設計から実装・運用まで担当しています。

PHPがバージョン4の時代から書いており、
Laravelが普及する前のフレームワーク乱立期も経験しています。
「昔はこう書いていたが今はこう」という変遷を肌で知っているエンジニアとして、
単なるコマンドの使い方だけでなく、なぜそうするのかの背景まで伝えることを意識して書いています。

このブログでは、実務で実際に詰まった箇所・調べたこと・気づいたことを
そのまま記事にしています。誰かの「詰まり」が解決するきっかけになれば幸いです。

千原 耕司をフォローする

役にたったと思ったら応援をお願いします m(._.)m

Laravel
スポンサーリンク
シェアする
千原 耕司をフォローする
タイトルとURLをコピーしました