This package offers extra validation rules for Laravel.
Requirements#
This package requires Laravel 11+ and PHP 8.2+. If you need to support older version, see the table below:
| Version | Compatible with |
|---|---|
| 9.0.0 | 13+ |
| 7.0.0 | 12+ |
| 6.0.0 | 11+ |
| 4.0.0+ | 10+ |
| 3.0.0 | 9+ |
| 1.4.0+ | 8+ |
| 1.2.0+ | 7+ |
| 1.1.0 | 6+ |
| 1.0.1 | 5.7+ |
Installation#
You can install the package via composer:
composer require vdhicts/laravel-validation-rules
The package will automatically register itself in Laravel.
Translation#
The package includes both English and Dutch translations. The translations can be published by running:
php artisan vendor:publish
Available Rules#
BicNumber#
Validates the provided BIC number.
'field' => [new BicNumber()],
Contains#
Validates if the value contains a certain phrase.
'field' => [new Contains($needle)],
ContainsAny#
Validates if the value contains any of the provided phrases.
'field' => [new ContainsAny(['foo', 'bar'])],
DateAfterOrEqual#
Validates if the value is a date after or equals the provided date (Carbon).
'field' => [new DateAfterOrEqual($date)],
DateBeforeOrEqual#
Validates if the value is a date before or equals the provided date (Carbon).
'field' => [new DateBeforeOrEqual($date)],
DateHasSpecificMinutes#
Validates if the selected minutes for the provided date are according to the available minutes.
'field' => [new DateHasSpecificMinutes([0, 15, 30, 45])],
When the date is not according to the 'Y-m-d H:i' format then you are able to specify the format as second parameter:
'field' => [new DateHasSpecificMinutes([0, 15, 30, 45], 'd-m-Y H:i')],
DutchPhone#
Validates if the value is a valid Dutch phone number. Both mobile or landlines are supported. See the Phone validation
rule to validate a phone number which isn't limited to the Netherlands.
'field' => [new DutchPhone()],
DutchPostalCode#
Validates if the value is a valid Dutch zip code, like 1234AB.
'field' => [new DutchPostalCode()],
HostName#
Validates if the value contains a valid hostname, like example.com.
'field' => [new HostName()],
InternationalBankAccountNumber#
Validates if the value contains a valid IBAN.
'field' => [new InternationalBankAccountNumber()],
Interval#
Validates if the value is an interval, i.e. PT30S.
'field' => [new Interval()],
MaximumHourDifference#
Validates if the value is differing less then the provided amount of hours.
'field' => [new MaximumHourDifference($start, 10)];
Mime Type#
Validates if the value is a structural valid MIME.
'field' => [new MimeType()],
NotContains#
Validates if the value NOT contains a certain phrase.
'field' => [new NotContains($needle)],
Phone#
Validates if the value is a valid phone number.
'field' => [new Phone()],
Positive interval#
Validates if the value is an interval and the interval is positive.
'field' => [new PositiveInterval()],
Price#
Validates if the value is a valid price. The rule optionally accepts a specific decimal sign. When the decimal isn't
provided it accepts both , or . signs.
'field' => [new Price()], // accepts both , and .
'field' => [new Price(',')], // accepts only ,
Secure url#
Validates if the value is a valid secure url, i.e. is a HTTPS url.
'field' => [new SecureUrl()],
Semver#
Validates if the value is a valid version according to the Semver standard.
'field' => [new Semver()],
VatNumber#
Validates if the value is a properly formatted VAT number.
'field' => [new VatNumber()],
Be aware: It doesn't check if the number is known in the VAT database. If you need to know the VAT number is truly legit, check with VIES.
VersionNumber#
Validates if the value is a valid version number. The rule accepts both x.y.z and x.y formats. The parameter
requirePatch allows you to require the z part of the version number. This is useful for validation PHP version
numbers for example.
'field' => [new VersionNumber(requirePatch: true)],
Contribution#
Any contribution is welcome, but it should be (unit) tested and meet the PSR-12 standard and please create one pull request per feature. In exchange, you will be credited as contributor on this page.
Security#
If you discover any security related issues in this or other packages of Vdhicts, please email security@vdhicts.nl instead of using the issue tracker.
License#
This package is open-sourced software licensed under the MIT license.