Download the PHP package spatie/laravel-validation-rules without Composer
On this page you can find all versions of the php package spatie/laravel-validation-rules. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spatie/laravel-validation-rules
More information about spatie/laravel-validation-rules
Files in spatie/laravel-validation-rules
Package laravel-validation-rules
Short Description A set of useful Laravel validation rules
License MIT
Homepage https://github.com/spatie/laravel-validation-rules
Informations about the package laravel-validation-rules
A set of useful Laravel validation rules
This repository contains some useful Laravel validation rules.
Support us
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
Installation
You can install the package via composer:
The package will automatically register itself.
Translations
If you wish to edit the package translations, you can run the following command to publish them into your resources/lang
folder
Available rules
Authorized
CountryCode
Currency
Enum
ModelsExist
Delimited
Authorized
Determine if the user is authorized to perform an ability on an instance of the given model. The id of the model is the field under validation
Consider the following policy:
This validation rule will pass if the id of the logged in user matches the user_id
on TestModel
who's it is in the model_id
key of the request.
Optionally, you can provide an authentication guard as the third parameter.
Model resolution
If you have implemented the getRouteKeyName
method in your model, it will be used to resolve the model instance. For further information see Customizing The Default Key Name
CountryCode
Determine if the field under validation is a valid 2 letter ISO3166 country code (example of valid country codes: GB
, DK
, NL
).
Note that this rule requires the package league/iso3166
to be installed: composer require league/iso3166
If you want to validate a nullable country code field, you can call the nullable()
method on the CountryCode
rule. This way null
and 0
are also passing values:
Currency
Determine if the field under validation is a valid 3 letter ISO4217 currency code (example of valid currencies: EUR
, USD
, CAD
).
Note that this rule require the package league/iso3166
to be installed: composer require league/iso3166
If you want to validate a nullable currency field, simple do not let it be required as described in the Laravel Docs for implicit validation rules:
... when an attribute being validated is not present or contains an empty string, normal validation rules, including custom rules, are not run
Enum
This rule will validate if the value under validation is part of the given enum class. We assume that the enum class has a static toArray
method that returns all valid values. If you're looking for a good enum class, take a look at spatie/enum or myclabs/php-enum.
Consider the following enum class:
The Enum
rule can be used like this:
The request will only be valid if role
contains ADMIN
or REVIEWER
.
ModelsExist
Determine if all of the values in the input array exist as attributes for the given model class.
By default the rule assumes that you want to validate using id
attribute. In the example below the validation will pass if all model_ids
exist for the Model
.
You can also pass an attribute name as the second argument. In the example below the validation will pass if there are users for each email given in the user_emails
of the request.
Delimited
This rule can validate a string containing delimited values. The constructor accepts a rule that is used to validate all separate values.
Here's an example where we are going to validate a string containing comma separated email addresses.
Here's some example input that passes this rule:
'[email protected], [email protected]'
''
'[email protected]'
'[email protected], [email protected], [email protected]'
' [email protected] , [email protected] , [email protected] '
This input will not pass:
'@example.com'
'[email protected] [email protected]'
'[email protected], invalid@'
Setting a minimum
You can set minimum amout of items that should be present:
'[email protected], [email protected]'
// passes'[email protected]'
// fails
Setting a maximum
'[email protected]'
// passes'[email protected], [email protected], [email protected]'
// fails
Allowing duplicate items
By default the rule will fail if there are duplicate items found.
'[email protected], [email protected]'
// fails
You can allowing duplicate items like this:
Now this will pass: 1,1,2,2,3,3
Customizing the separator
'[email protected]; [email protected]; [email protected]'
// passes'[email protected], [email protected], [email protected]'
// fails
Skip trimming of items
'[email protected],[email protected]'
// passes'[email protected], [email protected]'
// fails'[email protected] , [email protected]'
// fails
Composite rules
The constructor of the validator accepts a validation rule string, a validate instance, or an array.
'[email protected]'
// passes'invalid'
// fails'[email protected]'
// fails
Passing custom error messages
The constructor of the validator accepts a custom error messages array as second parameter.
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you've found a bug regarding security please mail [email protected] instead of using the issue tracker.
Credits
- Freek Van der Herten
- All Contributors
Support us
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.
License
The MIT License (MIT). Please see License File for more information.