List of Laravel validation rules

If you check the Illuminate\Validation\Validator class it has quite a few arrays toward the top with different built in validation rules.


There's a lot more than 4-5 validation rules. From the docs.

This is the current list (Laravel 9):

Accepted

Accepted If

Active URL

After (Date)

After Or Equal (Date)

Alpha

Alpha Dash

Alpha Numeric

Array

Bail

Before (Date)

Before Or Equal (Date)

Between

Boolean

Confirmed

Current Password

Date

Date Equals

Date Format

Declined

Declined If

Different

Digits

Digits Between

Dimensions (Image Files)

Distinct

Doesnt Start With

Doesnt End With

Email

Ends With

Enum

Exclude

Exclude If

Exclude Unless

Exclude With

Exclude Without

Exists (Database)

File

Filled

Greater Than

Greater Than Or Equal

Image (File)

In

In Array

Integer

IP Address

JSON

Less Than

Less Than Or Equal

MAC Address

Max

MIME Types

MIME Type By File Extension

Min

Multiple Of

Not In

Not Regex

Nullable

Numeric

Password

Present

Prohibited

Prohibited If

Prohibited Unless

Prohibits

Regular Expression

Required

Required If

Required Unless

Required With

Required With All

Required Without

Required Without All

Required Array Keys

Same

Size

Sometimes

Starts With

String

Timezone

Unique (Database)

URL

UUID


I don't know if anyone else will find this useful, but you can use reflection to figure out the validators:

$validatorClass = new ReflectionClass(Illuminate\Validation\Concerns\ValidatesAttributes::class);

collect($validatorClass->getMethods(ReflectionMethod::IS_PUBLIC))
  ->filter(function($method){
    return Illuminate\Support\Str::startsWith($method->name,'validate');
  })
  ->map(function($method){
    return str_replace('validate_', '', Illuminate\Support\Str::snake($method->name));
  })
  ->dd();

array:68 [
  0 => "accepted"
  1 => "active_url"
  2 => "bail"
  3 => "before"
  4 => "before_or_equal"
  5 => "after"
  6 => "after_or_equal"
  7 => "alpha"
  8 => "alpha_dash"
  9 => "alpha_num"
  10 => "array"
  11 => "between"
  12 => "boolean"
  13 => "confirmed"
  14 => "date"
  15 => "date_format"
  16 => "date_equals"
  17 => "different"
  18 => "digits"
  19 => "digits_between"
  20 => "dimensions"
  21 => "distinct"
  22 => "email"
  23 => "exists"
  24 => "unique"
  28 => "file"
  29 => "filled"
  30 => "gt"
  31 => "lt"
  32 => "gte"
  33 => "lte"
  34 => "image"
  35 => "in"
  36 => "in_array"
  37 => "integer"
  38 => "ip"
  39 => "ipv4"
  40 => "ipv6"
  41 => "json"
  42 => "max"
  43 => "mimes"
  44 => "mimetypes"
  45 => "min"
  46 => "nullable"
  47 => "not_in"
  48 => "numeric"
  49 => "present"
  50 => "regex"
  51 => "not_regex"
  52 => "required"
  53 => "required_if"
  54 => "exclude_if"
  55 => "exclude_unless"
  56 => "exclude_without"
  57 => "required_unless"
  58 => "required_with"
  59 => "required_with_all"
  60 => "required_without"
  61 => "required_without_all"
  62 => "same"
  63 => "size"
  64 => "sometimes"
  65 => "starts_with"
  66 => "ends_with"
  67 => "string"
  68 => "timezone"
  69 => "url"
  70 => "uuid"
]