Validation attributes | laravel-data | Spatie

 SPATIE

  Laravel Data
===============

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-data](https://spatie.be/docs/laravel-data/v4)  Advanced-usage  Validation attributes

 Version   v4   v3   v2   v1

 Other versions for crawler [v4](https://spatie.be/docs/laravel-data/v4) [v3](https://spatie.be/docs/laravel-data/v3) [v2](https://spatie.be/docs/laravel-data/v2) [v1](https://spatie.be/docs/laravel-data/v1)

- [ Introduction ](https://spatie.be/docs/laravel-data/v4/introduction)
- [ Support us ](https://spatie.be/docs/laravel-data/v4/support-us)
- [ Requirements ](https://spatie.be/docs/laravel-data/v4/requirements)
- [ Installation &amp; setup ](https://spatie.be/docs/laravel-data/v4/installation-setup)
- [ Third party packages ](https://spatie.be/docs/laravel-data/v4/third-party-packages)
- [ Questions and issues ](https://spatie.be/docs/laravel-data/v4/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-data/v4/changelog)
- [ About us ](https://spatie.be/docs/laravel-data/v4/about-us)

Getting started
---------------

- [ Quickstart ](https://spatie.be/docs/laravel-data/v4/getting-started/quickstart)

As a DTO
--------

- [ Creating a data object ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/creating-a-data-object)
- [ Nesting ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/nesting)
- [ Collections ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/collections)
- [ Abstract Data ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/abstract-data)
- [ Casts ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/casts)
- [ Optional properties ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/optional-properties)
- [ Mapping property names ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/mapping-property-names)
- [ Default values ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/defaults)
- [ Computed values ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/computed)
- [ From a request ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/request-to-data-object)
- [ From a model ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/model-to-data-object)
- [ Injecting property values ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/injecting-property-values)
- [ Factories ](https://spatie.be/docs/laravel-data/v4/as-a-data-transfer-object/factories)

Validation
----------

- [ Introduction ](https://spatie.be/docs/laravel-data/v4/validation/introduction)
- [ Auto rule inferring ](https://spatie.be/docs/laravel-data/v4/validation/auto-rule-inferring)
- [ Using validation attributes ](https://spatie.be/docs/laravel-data/v4/validation/using-validation-attributes)
- [ Manual rules ](https://spatie.be/docs/laravel-data/v4/validation/manual-rules)
- [ Working with the validator ](https://spatie.be/docs/laravel-data/v4/validation/working-with-the-validator)
- [ Nesting Data ](https://spatie.be/docs/laravel-data/v4/validation/nesting-data)
- [ Skipping validation ](https://spatie.be/docs/laravel-data/v4/validation/skipping-validation)

As a resource
-------------

- [ From data to array ](https://spatie.be/docs/laravel-data/v4/as-a-resource/from-data-to-array)
- [ From data to resource ](https://spatie.be/docs/laravel-data/v4/as-a-resource/from-data-to-resource)
- [ Mapping property names ](https://spatie.be/docs/laravel-data/v4/as-a-resource/mapping-property-names)
- [ Appending properties ](https://spatie.be/docs/laravel-data/v4/as-a-resource/appending-properties)
- [ Wrapping ](https://spatie.be/docs/laravel-data/v4/as-a-resource/wrapping)
- [ Including and excluding properties ](https://spatie.be/docs/laravel-data/v4/as-a-resource/lazy-properties)
- [ Transforming data ](https://spatie.be/docs/laravel-data/v4/as-a-resource/transformers)

Advanced usage
--------------

- [ Eloquent casting ](https://spatie.be/docs/laravel-data/v4/advanced-usage/eloquent-casting)
- [ Transforming to TypeScript ](https://spatie.be/docs/laravel-data/v4/advanced-usage/typescript)
- [ Working with dates ](https://spatie.be/docs/laravel-data/v4/advanced-usage/working-with-dates)
- [ Normalizers ](https://spatie.be/docs/laravel-data/v4/advanced-usage/normalizers)
- [ Pipeline ](https://spatie.be/docs/laravel-data/v4/advanced-usage/pipeline)
- [ Creating a cast ](https://spatie.be/docs/laravel-data/v4/advanced-usage/creating-a-cast)
- [ Creating a transformer ](https://spatie.be/docs/laravel-data/v4/advanced-usage/creating-a-transformer)
- [ Creating a rule inferrer ](https://spatie.be/docs/laravel-data/v4/advanced-usage/creating-a-rule-inferrer)
- [ Use with Inertia ](https://spatie.be/docs/laravel-data/v4/advanced-usage/use-with-inertia)
- [ Use with Livewire ](https://spatie.be/docs/laravel-data/v4/advanced-usage/use-with-livewire)
- [ Internal structures ](https://spatie.be/docs/laravel-data/v4/advanced-usage/internal-structures)
- [ Mapping rules ](https://spatie.be/docs/laravel-data/v4/advanced-usage/mapping-rules)
- [ Validation attributes ](https://spatie.be/docs/laravel-data/v4/advanced-usage/validation-attributes)
- [ Get data from a class quickly ](https://spatie.be/docs/laravel-data/v4/advanced-usage/get-data-from-a-class-quickly)
- [ Performance ](https://spatie.be/docs/laravel-data/v4/advanced-usage/performance)
- [ Commands ](https://spatie.be/docs/laravel-data/v4/advanced-usage/commands)
- [ Traits and interfaces ](https://spatie.be/docs/laravel-data/v4/advanced-usage/traits-and-interfaces)
- [ In Packages ](https://spatie.be/docs/laravel-data/v4/advanced-usage/in-packages)
- [ Available property mappers ](https://spatie.be/docs/laravel-data/v4/advanced-usage/available-property-mappers)

 Validation attributes
=====================

###  On this page

1. [ Accepted ](#content-accepted)
2. [ AcceptedIf ](#content-acceptedif)
3. [ ActiveUrl ](#content-activeurl)
4. [ After ](#content-after)
5. [ AfterOrEqual ](#content-afterorequal)
6. [ Alpha ](#content-alpha)
7. [ AlphaDash ](#content-alphadash)
8. [ AlphaNumeric ](#content-alphanumeric)
9. [ ArrayType ](#content-arraytype)
10. [ Bail ](#content-bail)
11. [ Before ](#content-before)
12. [ BeforeOrEqual ](#content-beforeorequal)
13. [ Between ](#content-between)
14. [ BooleanType ](#content-booleantype)
15. [ Confirmed ](#content-confirmed)
16. [ CurrentPassword ](#content-currentpassword)
17. [ Date ](#content-date)
18. [ DateEquals ](#content-dateequals)
19. [ DateFormat ](#content-dateformat)
20. [ Declined ](#content-declined)
21. [ DeclinedIf ](#content-declinedif)
22. [ Different ](#content-different)
23. [ Digits ](#content-digits)
24. [ DigitsBetween ](#content-digitsbetween)
25. [ Dimensions ](#content-dimensions)
26. [ Distinct ](#content-distinct)
27. [ DoesntEndWith ](#content-doesntendwith)
28. [ DoesntStartWith ](#content-doesntstartwith)
29. [ Email ](#content-email)
30. [ EndsWith ](#content-endswith)
31. [ Enum ](#content-enum)
32. [ ExcludeIf ](#content-excludeif)
33. [ ExcludeUnless ](#content-excludeunless)
34. [ ExcludeWith ](#content-excludewith)
35. [ ExcludeWithout ](#content-excludewithout)
36. [ Exists ](#content-exists)
37. [ File ](#content-file)
38. [ Filled ](#content-filled)
39. [ GreaterThan ](#content-greaterthan)
40. [ GreaterThanOrEqualTo ](#content-greaterthanorequalto)
41. [ Image ](#content-image)
42. [ In ](#content-in)
43. [ InArray ](#content-inarray)
44. [ IntegerType ](#content-integertype)
45. [ IP ](#content-ip)
46. [ IPv4 ](#content-ipv4)
47. [ IPv6 ](#content-ipv6)
48. [ Json ](#content-json)
49. [ LessThan ](#content-lessthan)
50. [ LessThanOrEqualTo ](#content-lessthanorequalto)
51. [ Lowercase ](#content-lowercase)
52. [ ListType ](#content-listtype)
53. [ MacAddress ](#content-macaddress)
54. [ Max ](#content-max)
55. [ MaxDigits ](#content-maxdigits)
56. [ MimeTypes ](#content-mimetypes)
57. [ Mimes ](#content-mimes)
58. [ Min ](#content-min)
59. [ MinDigits ](#content-mindigits)
60. [ MultipleOf ](#content-multipleof)
61. [ NotIn ](#content-notin)
62. [ NotRegex ](#content-notregex)
63. [ Nullable ](#content-nullable)
64. [ Numeric ](#content-numeric)
65. [ Password ](#content-password)
66. [ Present ](#content-present)
67. [ Prohibited ](#content-prohibited)
68. [ ProhibitedIf ](#content-prohibitedif)
69. [ ProhibitedUnless ](#content-prohibitedunless)
70. [ Prohibits ](#content-prohibits)
71. [ Regex ](#content-regex)
72. [ Required ](#content-required)
73. [ RequiredIf ](#content-requiredif)
74. [ RequiredUnless ](#content-requiredunless)
75. [ RequiredWith ](#content-requiredwith)
76. [ RequiredWithAll ](#content-requiredwithall)
77. [ RequiredWithout ](#content-requiredwithout)
78. [ RequiredWithoutAll ](#content-requiredwithoutall)
79. [ RequiredArrayKeys ](#content-requiredarraykeys)
80. [ Rule ](#content-rule)
81. [ Same ](#content-same)
82. [ Size ](#content-size)
83. [ Sometimes ](#content-sometimes)
84. [ StartsWith ](#content-startswith)
85. [ StringType ](#content-stringtype)
86. [ TimeZone ](#content-timezone)
87. [ Unique ](#content-unique)
88. [ Uppercase ](#content-uppercase)
89. [ Url ](#content-url)
90. [ Ulid ](#content-ulid)
91. [ Uuid ](#content-uuid)

These are all the validation attributes currently available in laravel-data.

Accepted
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-accepted)

```
#[Accepted]
public bool $closure;
```

AcceptedIf
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-accepted-if)

```
#[AcceptedIf('other_field', 'equals_this')]
public bool $closure;
```

ActiveUrl
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-active-url)

```
#[ActiveUrl]
public string $closure;
```

After
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-after)

```
#[After('tomorrow')]
public Carbon $closure;

#[After(Carbon::yesterday())]
public Carbon $closure;

// Always use field references when referencing other fields
#[After(new FieldReference('other_field'))]
public Carbon $closure;
```

AfterOrEqual
--------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-after-or-equal)

```
#[AfterOrEqual('tomorrow')]
public Carbon $closure;

#[AfterOrEqual(Carbon::yesterday())]
public Carbon $closure;

// Always use field references when referencing other fields
#[AfterOrEqual(new FieldReference('other_field'))]
public Carbon $closure;
```

Alpha
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-alpha)

```
#[Alpha]
public string $closure;
```

AlphaDash
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-alpha-dash)

```
#[AlphaDash]
public string $closure;
```

AlphaNumeric
--------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-alpha-num)

```
#[AlphaNumeric]
public string $closure;
```

ArrayType
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-array)

```
#[ArrayType]
public array $closure;

#[ArrayType(['valid_key', 'other_valid_key'])]
public array $closure;

#[ArrayType('valid_key', 'other_valid_key')]
public array $closure;
```

Bail
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-bail)

```
#[Bail]
public string $closure;
```

Before
--------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-before)

```
#[Before('tomorrow')]
public Carbon $closure;

#[Before(Carbon::yesterday())]
public Carbon $closure;

// Always use field references when referencing other fields
#[Before(new FieldReference('other_field'))]
public Carbon $closure;
```

BeforeOrEqual
-----------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-before-or-equal)

```
#[BeforeOrEqual('tomorrow')]
public Carbon $closure;

#[BeforeOrEqual(Carbon::yesterday())]
public Carbon $closure;

// Always use field references when referencing other fields
#[BeforeOrEqual(new FieldReference('other_field'))]
public Carbon $closure;
```

Between
-----------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-between)

```
#[Between(3.14, 42)]
public int $closure;
```

BooleanType
-----------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-boolean)

```
#[BooleanType]
public bool $closure;
```

Confirmed
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-confirmed)

```
#[Confirmed]
public string $closure;
```

CurrentPassword
-----------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-current-password)

```
#[CurrentPassword]
public string $closure;

#[CurrentPassword('api')]
public string $closure;
```

Date
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-date)

```
#[Date]
public Carbon $date;
```

DateEquals
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-date-equals)

```
#[DateEquals('tomorrow')]
public Carbon $date;

#[DateEquals(Carbon::yesterday())]
public Carbon $date;
```

DateFormat
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-date-format)

```
#[DateFormat('d-m-Y')]
public Carbon $date;

#[DateFormat(['Y-m-d', 'Y-m-d H:i:s'])]
public Carbon $date;
```

Declined
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-declined)

```
#[Declined]
public bool $closure;
```

DeclinedIf
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-declined-if)

```
#[DeclinedIf('other_field', 'equals_this')]
public bool $closure;
```

Different
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-different)

```
#[Different('other_field')]
public string $closure;
```

Digits
--------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-digits)

```
#[Digits(10)]
public int $closure;
```

DigitsBetween
-----------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-digits-between)

```
#[DigitsBetween(2, 10)]
public int $closure;
```

Dimensions
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-dimensions)

```
#[Dimensions(ratio: 1.5)]
public UploadedFile $closure;

#[Dimensions(maxWidth: 100, maxHeight: 100)]
public UploadedFile $closure;
```

Distinct
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-distinct)

```
#[Distinct]
public string $closure;

#[Distinct(Distinct::Strict)]
public string $closure;

#[Distinct(Distinct::IgnoreCase)]
public string $closure;
```

DoesntEndWith
-----------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-doesnt-end-with)

```
#[DoesntEndWith('a')]
public string $closure;

#[DoesntEndWith(['a', 'b'])]
public string $closure;

#[DoesntEndWith('a', 'b')]
public string $closure;
```

DoesntStartWith
-----------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-doesnt-start-with)

```
#[DoesntStartWith('a')]
public string $closure;

#[DoesntStartWith(['a', 'b'])]
public string $closure;

#[DoesntStartWith('a', 'b')]
public string $closure;
```

Email
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-email)

```
#[Email]
public string $closure;

#[Email(Email::RfcValidation)]
public string $closure;

#[Email([Email::RfcValidation, Email::DnsCheckValidation])]
public string $closure;

#[Email(Email::RfcValidation, Email::DnsCheckValidation)]
public string $closure;
```

EndsWith
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-ends-with)

```
#[EndsWith('a')]
public string $closure;

#[EndsWith(['a', 'b'])]
public string $closure;

#[EndsWith('a', 'b')]
public string $closure;
```

Enum
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-enum)

```
#[Enum(ChannelType::class)]
public string $closure;

#[Enum(ChannelType::class, only: [ChannelType::Email])]
public string $closure;

#[Enum(ChannelType::class, except: [ChannelType::Email])]
public string $closure;
```

ExcludeIf
-----------------------------------------------------------------------------------

*At the moment the data is not yet excluded due to technical reasons, v4 should fix this*

[Docs](https://laravel.com/docs/validation#rule-exclude-if)

```
#[ExcludeIf('other_field', 'has_value')]
public string $closure;
```

ExcludeUnless
-----------------------------------------------------------------------------------------------

*At the moment the data is not yet excluded due to technical reasons, v4 should fix this*

[Docs](https://laravel.com/docs/validation#rule-exclude-unless)

```
#[ExcludeUnless('other_field', 'has_value')]
public string $closure;
```

ExcludeWith
-----------------------------------------------------------------------------------------

*At the moment the data is not yet excluded due to technical reasons, v4 should fix this*

[Docs](https://laravel.com/docs/validation#rule-exclude-with)

```
#[ExcludeWith('other_field')]
public string $closure;
```

ExcludeWithout
--------------------------------------------------------------------------------------------------

*At the moment the data is not yet excluded due to technical reasons, v4 should fix this*

[Docs](https://laravel.com/docs/validation#rule-exclude-without)

```
#[ExcludeWithout('other_field')]
public string $closure;
```

Exists
--------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-exists)

```
#[Exists('users')]
public string $closure;

#[Exists(User::class)]
public string $closure;

#[Exists('users', 'email')]
public string $closure;

#[Exists('users', 'email', connection: 'tenant')]
public string $closure;

#[Exists('users', 'email', withoutTrashed: true)]
public string $closure;
```

File
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-file)

```
#[File]
public UploadedFile $closure;
```

Filled
--------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-filled)

```
#[Filled]
public string $closure;
```

GreaterThan
-----------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-gt)

```
#[GreaterThan('other_field')]
public int $closure;
```

GreaterThanOrEqualTo
--------------------------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-gte)

```
#[GreaterThanOrEqualTo('other_field')]
public int $closure;
```

Image
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-image)

```
#[Image]
public UploadedFile $closure;
```

In
--------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-in)

```
#[In([1, 2, 3, 'a', 'b'])]
public mixed $closure;

#[In(1, 2, 3, 'a', 'b')]
public mixed $closure;
```

InArray
-----------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-in-array)

```
#[InArray('other_field')]
public string $closure;
```

IntegerType
-----------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-integer)

```
#[IntegerType]
public int $closure;
```

IP
--------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-ip)

```
#[IP]
public string $closure;
```

IPv4
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#ipv4)

```
#[IPv4]
public string $closure;
```

IPv6
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#ipv6)

```
#[IPv6]
public string $closure;
```

Json
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-json)

```
#[Json]
public string $closure;
```

LessThan
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-lt)

```
#[LessThan('other_field')]
public int $closure;
```

LessThanOrEqualTo
-----------------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-lte)

```
#[LessThanOrEqualTo('other_field')]
public int $closure;
```

Lowercase
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-lowercase)

```
#[Lowercase]
public string $closure;
```

ListType
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-list)

```
#[ListType]
public array $array;
```

MacAddress
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-mac)

```
#[MacAddress]
public string $closure;
```

Max
-----------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-max)

```
#[Max(20)]
public int $closure;
```

MaxDigits
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-max-digits)

```
#[MaxDigits(10)]
public int $closure;
```

MimeTypes
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-mimetypes)

```
#[MimeTypes('video/quicktime')]
public UploadedFile $closure;

#[MimeTypes(['video/quicktime', 'video/avi'])]
public UploadedFile $closure;

#[MimeTypes('video/quicktime', 'video/avi')]
public UploadedFile $closure;
```

Mimes
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-mimes)

```
#[Mimes('jpg')]
public UploadedFile $closure;

#[Mimes(['jpg', 'png'])]
public UploadedFile $closure;

#[Mimes('jpg', 'png')]
public UploadedFile $closure;
```

Min
-----------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-min)

```
#[Min(20)]
public int $closure;
```

MinDigits
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-min-digits)

```
#[MinDigits(2)]
public int $closure;
```

MultipleOf
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-multiple-of)

```
#[MultipleOf(3)]
public int $closure;
```

NotIn
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-not-in)

```
#[NotIn([1, 2, 3, 'a', 'b'])]
public mixed $closure;

#[NotIn(1, 2, 3, 'a', 'b')]
public mixed $closure;
```

NotRegex
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-not-regex)

```
#[NotRegex('/^.+$/i')]
public string $closure;
```

Nullable
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-nullable)

```
#[Nullable]
public ?string $closure;
```

Numeric
-----------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-numeric)

```
#[Numeric]
public ?string $closure;
```

Password
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-password)

```
#[Password(min: 12, letters: true, mixedCase: true, numbers: false, symbols: false, uncompromised: true, uncompromisedThreshold: 0)]
public string $closure;
```

Present
-----------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-present)

```
#[Present]
public string $closure;
```

Prohibited
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-prohibited)

```
#[Prohibited]
public ?string $closure;
```

ProhibitedIf
--------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-prohibited-if)

```
#[ProhibitedIf('other_field', 'has_value')]
public ?string $closure;

#[ProhibitedIf('other_field', ['has_value', 'or_this_value'])]
public ?string $closure;
```

ProhibitedUnless
--------------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-prohibited-unless)

```
#[ProhibitedUnless('other_field', 'has_value')]
public ?string $closure;

#[ProhibitedUnless('other_field', ['has_value', 'or_this_value'])]
public ?string $closure;
```

Prohibits
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-prohibits)

```
#[Prohibits('other_field')]
public ?string $closure;

#[Prohibits(['other_field', 'another_field'])]
public ?string $closure;

#[Prohibits('other_field', 'another_field')]
public ?string $closure;
```

Regex
-----------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-regex)

```
#[Regex('/^.+$/i')]
public string $closure;
```

Required
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required)

```
#[Required]
public string $closure;
```

RequiredIf
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-if)

```
#[RequiredIf('other_field', 'value')]
public ?string $closure;

#[RequiredIf('other_field', ['value', 'another_value'])]
public ?string $closure;
```

RequiredUnless
--------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-unless)

```
#[RequiredUnless('other_field', 'value')]
public ?string $closure;

#[RequiredUnless('other_field', ['value', 'another_value'])]
public ?string $closure;
```

RequiredWith
--------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-with)

```
#[RequiredWith('other_field')]
public ?string $closure;

#[RequiredWith(['other_field', 'another_field'])]
public ?string $closure;

#[RequiredWith('other_field', 'another_field')]
public ?string $closure;
```

RequiredWithAll
-----------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-with-all)

```
#[RequiredWithAll('other_field')]
public ?string $closure;

#[RequiredWithAll(['other_field', 'another_field'])]
public ?string $closure;

#[RequiredWithAll('other_field', 'another_field')]
public ?string $closure;
```

RequiredWithout
-----------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-without)

```
#[RequiredWithout('other_field')]
public ?string $closure;

#[RequiredWithout(['other_field', 'another_field'])]
public ?string $closure;

#[RequiredWithout('other_field', 'another_field')]
public ?string $closure;
```

RequiredWithoutAll
--------------------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-without-all)

```
#[RequiredWithoutAll('other_field')]
public ?string $closure;

#[RequiredWithoutAll(['other_field', 'another_field'])]
public ?string $closure;

#[RequiredWithoutAll('other_field', 'another_field')]
public ?string $closure;
```

RequiredArrayKeys
-----------------------------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-required-array-keys)

```
#[RequiredArrayKeys('a')]
public array $closure;

#[RequiredArrayKeys(['a', 'b'])]
public array $closure;

#[RequiredArrayKeys('a', 'b')]
public array $closure;
```

Rule
--------------------------------------------------------------------

```
#[Rule('string|uuid')]
public string $closure;

#[Rule(['string','uuid'])]
public string $closure;
```

Same
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-same)

```
#[Same('other_field')]
public string $closure;
```

Size
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-size)

```
#[Size(10)]
public string $closure;
```

Sometimes
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#validating-when-present)

```
#[Sometimes]
public string $closure;
```

StartsWith
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-starts-with)

```
#[StartsWith('a')]
public string $closure;

#[StartsWith(['a', 'b'])]
public string $closure;

#[StartsWith('a', 'b')]
public string $closure;
```

StringType
--------------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-string)

```
#[StringType()]
public string $closure;
```

TimeZone
--------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-timezone)

```
#[TimeZone()]
public string $closure;
```

Unique
--------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-unique)

```
#[Unique('users')]
public string $closure;

#[Unique(User::class)]
public string $closure;

#[Unique('users', 'email')]
public string $closure;

#[Unique('users', connection: 'tenant')]
public string $closure;

#[Unique('users', withoutTrashed: true)]
public string $closure;

#[Unique('users', ignore: 5)]
public string $closure;

#[Unique('users', ignore: new AuthenticatedUserReference())]
public string $closure;

#[Unique('posts', ignore: new RouteParameterReference('post'))]
public string $closure;
```

Uppercase
-----------------------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-uppercase)

```
#[Uppercase]
public string $closure;
```

Url
-----------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-url)

```
#[Url]
public string $closure;
```

```
#[Url(['http', 'https'])]
public string $closure;
```

Ulid
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-ulid)

```
#[Ulid]
public string $closure;
```

Uuid
--------------------------------------------------------------------

[Docs](https://laravel.com/docs/validation#rule-uuid)

```
#[Uuid]
public string $closure;
```
