Documentation Index Fetch the complete documentation index at: https://mintlify.com/spatie/laravel-data/llms.txt
Use this file to discover all available pages before exploring further.
Laravel Data provides validation attributes that correspond to Laravel’s validation rules. Use these attributes on data properties to automatically generate validation rules.
String Validation
Docs #[ Alpha ]
public string $name ;
Docs #[ AlphaDash ]
public string $username ;
Docs #[ AlphaNumeric ]
public string $code ;
Docs #[ StringType ]
public string $text ;
Docs #[ Lowercase ]
public string $email ;
Docs #[ Uppercase ]
public string $countryCode ;
Numeric Validation
Docs #[ IntegerType ]
public int $count ;
Docs #[ Numeric ]
public string | int | float $amount ;
Docs #[ Min ( 20 )]
public int $age ;
Docs #[ Max ( 100 )]
public int $percentage ;
Docs #[ Between ( 3.14 , 42 )]
public float $value ;
Docs #[ Digits ( 10 )]
public int $phoneNumber ;
Docs #[ DigitsBetween ( 2 , 10 )]
public int $code ;
Docs #[ MinDigits ( 2 )]
public int $value ;
Docs #[ MaxDigits ( 10 )]
public int $value ;
Docs #[ MultipleOf ( 3 )]
public int $quantity ;
Date Validation
Docs #[ Date ]
public Carbon $date ;
Docs #[ DateEquals ( 'tomorrow' )]
public Carbon $date ;
#[ DateEquals ( Carbon :: yesterday ())]
public Carbon $date ;
Docs #[ After ( 'tomorrow' )]
public Carbon $date ;
#[ After ( Carbon :: yesterday ())]
public Carbon $date ;
#[ After ( new FieldReference ( 'start_date' ))]
public Carbon $endDate ;
Docs #[ AfterOrEqual ( 'tomorrow' )]
public Carbon $date ;
#[ AfterOrEqual ( new FieldReference ( 'start_date' ))]
public Carbon $endDate ;
Docs #[ Before ( 'tomorrow' )]
public Carbon $date ;
#[ Before ( new FieldReference ( 'end_date' ))]
public Carbon $startDate ;
Docs #[ BeforeOrEqual ( 'tomorrow' )]
public Carbon $date ;
#[ BeforeOrEqual ( new FieldReference ( 'end_date' ))]
public Carbon $startDate ;
Boolean & Acceptance
Docs #[ BooleanType ]
public bool $active ;
Docs #[ Accepted ]
public bool $termsAccepted ;
Docs #[ AcceptedIf ( 'other_field' , 'equals_this' )]
public bool $confirmation ;
Docs #[ Declined ]
public bool $optOut ;
Docs #[ DeclinedIf ( 'other_field' , 'equals_this' )]
public bool $optOut ;
Array Validation
Docs #[ ArrayType ]
public array $items ;
#[ ArrayType ([ 'valid_key' , 'other_valid_key' ])]
public array $items ;
#[ ArrayType ( 'valid_key' , 'other_valid_key' )]
public array $items ;
Docs #[ ListType ]
public array $items ;
Docs #[ RequiredArrayKeys ( 'a' )]
public array $items ;
#[ RequiredArrayKeys ([ 'a' , 'b' ])]
public array $items ;
#[ RequiredArrayKeys ( 'a' , 'b' )]
public array $items ;
Docs #[ Distinct ]
public string $value ;
#[ Distinct ( Distinct :: Strict )]
public string $value ;
#[ Distinct ( Distinct :: IgnoreCase )]
public string $value ;
String Patterns
Docs #[ StartsWith ( 'a' )]
public string $value ;
#[ StartsWith ([ 'a' , 'b' ])]
public string $value ;
#[ StartsWith ( 'a' , 'b' )]
public string $value ;
Docs #[ EndsWith ( 'a' )]
public string $value ;
#[ EndsWith ([ 'a' , 'b' ])]
public string $value ;
Docs #[ DoesntStartWith ( 'a' )]
public string $value ;
#[ DoesntStartWith ([ 'a' , 'b' ])]
public string $value ;
Docs #[ DoesntEndWith ( 'a' )]
public string $value ;
Docs #[ Regex ( '/ ^ . +$ /i' )]
public string $value ;
Docs #[ NotRegex ( '/ ^ . +$ /i' )]
public string $value ;
Email & URL
Docs #[ Email ]
public string $email ;
#[ Email ( Email :: RfcValidation )]
public string $email ;
#[ Email ([ Email :: RfcValidation , Email :: DnsCheckValidation ])]
public string $email ;
Docs #[ Url ]
public string $website ;
#[ Url ([ 'http' , 'https' ])]
public string $website ;
Docs #[ ActiveUrl ]
public string $website ;
IP & Network
Docs #[ IP ]
public string $ipAddress ;
Docs #[ IPv4 ]
public string $ipAddress ;
Docs #[ IPv6 ]
public string $ipAddress ;
Docs #[ MacAddress ]
public string $macAddress ;
Database
Docs #[ Exists ( 'users' )]
public string $userId ;
#[ Exists ( User :: class )]
public string $userId ;
#[ Exists ( 'users' , 'email' )]
public string $email ;
#[ Exists ( 'users' , 'email' , connection : 'tenant' )]
public string $email ;
#[ Exists ( 'users' , 'email' , withoutTrashed : true )]
public string $email ;
Docs #[ Unique ( 'users' )]
public string $email ;
#[ Unique ( User :: class )]
public string $email ;
#[ Unique ( 'users' , 'email' )]
public string $email ;
#[ Unique ( 'users' , connection : 'tenant' )]
public string $email ;
#[ Unique ( 'users' , withoutTrashed : true )]
public string $email ;
#[ Unique ( 'users' , ignore : 5 )]
public string $email ;
#[ Unique ( 'users' , ignore : new AuthenticatedUserReference ())]
public string $email ;
#[ Unique ( 'posts' , ignore : new RouteParameterReference ( 'post' ))]
public string $slug ;
File Validation
Docs #[ File ]
public UploadedFile $document ;
Docs #[ Image ]
public UploadedFile $photo ;
Docs #[ Mimes ( 'jpg' )]
public UploadedFile $image ;
#[ Mimes ([ 'jpg' , 'png' ])]
public UploadedFile $image ;
#[ Mimes ( 'jpg' , 'png' )]
public UploadedFile $image ;
Docs #[ MimeTypes ( 'video/quicktime' )]
public UploadedFile $video ;
#[ MimeTypes ([ 'video/quicktime' , 'video/avi' ])]
public UploadedFile $video ;
Docs #[ Dimensions ( ratio : 1.5 )]
public UploadedFile $image ;
#[ Dimensions ( maxWidth : 100 , maxHeight : 100 )]
public UploadedFile $image ;
Field Relationships
Docs #[ Required ]
public string $name ;
Docs #[ RequiredIf ( 'other_field' , 'value' )]
public ? string $conditional ;
#[ RequiredIf ( 'other_field' , [ 'value' , 'another_value' ])]
public ? string $conditional ;
Docs #[ RequiredUnless ( 'other_field' , 'value' )]
public ? string $conditional ;
Docs #[ RequiredWith ( 'other_field' )]
public ? string $conditional ;
#[ RequiredWith ([ 'other_field' , 'another_field' ])]
public ? string $conditional ;
Docs #[ RequiredWithAll ([ 'other_field' , 'another_field' ])]
public ? string $conditional ;
Docs #[ RequiredWithout ( 'other_field' )]
public ? string $conditional ;
Docs #[ RequiredWithoutAll ([ 'other_field' , 'another_field' ])]
public ? string $conditional ;
Docs #[ Same ( 'other_field' )]
public string $confirmation ;
Docs #[ Different ( 'other_field' )]
public string $value ;
Docs #[ Confirmed ]
public string $password ;
Advanced
Docs #[ Enum ( ChannelType :: class )]
public string $channel ;
#[ Enum ( ChannelType :: class , only : [ ChannelType :: Email ])]
public string $channel ;
#[ Enum ( ChannelType :: class , except : [ ChannelType :: Email ])]
public string $channel ;
Docs #[ Uuid ]
public string $id ;
Docs #[ Ulid ]
public string $id ;
Docs #[ Json ]
public string $metadata ;
Docs #[ TimeZone ]
public string $timezone ;
Docs #[ Password ( min : 12 , letters : true , mixedCase : true , numbers : false , symbols : false , uncompromised : true , uncompromisedThreshold : 0 )]
public string $password ;
Docs #[ CurrentPassword ]
public string $currentPassword ;
#[ CurrentPassword ( 'api' )]
public string $currentPassword ;
Special Rules
Define custom validation rules: #[ Rule ( 'string|uuid' )]
public string $id ;
#[ Rule ([ 'string' , 'uuid' ])]
public string $id ;
Docs #[ Nullable ]
public ? string $optionalField ;
Docs #[ Sometimes ]
public string $value ;
Docs #[ Bail ]
public string $value ;
Docs #[ Filled ]
public string $value ;
Docs #[ Present ]
public string $value ;
Comparison
Docs #[ GreaterThan ( 'other_field' )]
public int $value ;
Docs #[ GreaterThanOrEqualTo ( 'other_field' )]
public int $value ;
Docs #[ LessThan ( 'other_field' )]
public int $value ;
Docs #[ LessThanOrEqualTo ( 'other_field' )]
public int $value ;
Docs #[ Size ( 10 )]
public string $value ;
Lists & Values
Docs #[ In ([ 1 , 2 , 3 , 'a' , 'b' ])]
public mixed $value ;
#[ In ( 1 , 2 , 3 , 'a' , 'b' )]
public mixed $value ;
Docs #[ NotIn ([ 1 , 2 , 3 , 'a' , 'b' ])]
public mixed $value ;
Docs #[ InArray ( 'other_field' )]
public string $value ;
Prohibition
Docs #[ Prohibited ]
public ? string $value ;
Docs #[ ProhibitedIf ( 'other_field' , 'has_value' )]
public ? string $value ;
#[ ProhibitedIf ( 'other_field' , [ 'has_value' , 'or_this_value' ])]
public ? string $value ;
Docs #[ ProhibitedUnless ( 'other_field' , 'has_value' )]
public ? string $value ;
Docs #[ Prohibits ( 'other_field' )]
public ? string $value ;
#[ Prohibits ([ 'other_field' , 'another_field' ])]
public ? string $value ;
Exclusion
At the moment the data is not yet excluded due to technical reasons. Version 4 should fix this.
Docs #[ ExcludeIf ( 'other_field' , 'has_value' )]
public string $value ;
Docs #[ ExcludeUnless ( 'other_field' , 'has_value' )]
public string $value ;
Docs #[ ExcludeWith ( 'other_field' )]
public string $value ;
Docs #[ ExcludeWithout ( 'other_field' )]
public string $value ;