ewereka / laravel-extra-validation
A set of extended validation rules for use with Laravel.
Requires
- php: ^7.2
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2025-05-29 01:33:05 UTC
README
This package provides a set of reusable validation rules for your Laravel projects. Use them to augment the existing set provided by Laravel itself.
Installation
Pull in the package using composer
composer require ewereka/laravel-extra-validation
Usage
As per the Laravel documentation, simply import the relevant validation class wherever you require it, and then include it within the rules for a particular field:
use Ewereka\Validation\Rules\StrongPassword; // ... $request->validate([ 'password' => ['bail', 'required', new StrongPassword], ]);
If the validation fails, the package will attempt to respond with a localized error message (see message keys below). If the key does not exist, it will fall back to a hard-coded English language version.
Available rules
The following validation rules are currently available:
Rule | Message Key | Description |
---|---|---|
StrongPassword | validation.strong_password | Requires the presence of a "strong" password - see class for details |
USPhoneNumber | validation.us_phone_number | Requires the presence of a valid US telephone number - see class for details |
RecordOwner | validation.record_owner | Requires the authenticated user's id to match the user_id column on a given database record e.g. owner:posts,id |
MonetaryFigure | validation.monetary_figure | Requires the presence of a monetary figure e.g $72.33 - see class for details |
DisposableEmail | validation.disposable_email | Requires the presence of an email address which is not disposable |
DoesNotExist | validation.does_not_exist | Requires that the given value is not present in a given database table / column - see class for details |
Decimal | validation.decimal | Requires that the given value is a decimal with an appropriate format - see class for details |
EncodedImage | validation.encoded_image | Requires that the given value is a base64-encoded image of a given mime type - see class for details |
LocationCoordinates | validation.location_coordinates | Requires that the given value is a comma-separated set of latitude and longitude coordinates |
FileExists | validation.file_exists | Requires that the given value is a path to an existing file - see class for details |
Equals | validation.equals | Requires that the given value is equal to another given value |
MacAddress | validation.mac_address | Requires that the given value is a valid MAC address |
ISBN | validation.isbn | Requires that the given value is a valid ISBN-10 or ISBN-13 number |
EndsWith | validation.ends_with | Requires that the given value ends with a given string - see class for details |
EvenNumber | validation.even_number | Requires that the given value is an even number (decimals are first converted using intval) |
OddNumber | validation.odd_number | Requires that the given value is an odd number (decimals are first converted using intval) |
Lowercase | validation.lowercase | Requires that the given value is a lowercase string |
Uppercase | validation.uppercase | Requires that the given value is a uppercase string |
Titlecase | validation.titlecase | Requires that the given value is a titlecase string |
Domain | validation.domain | Requires that the given value be a domain e.g. google.com, www.google.com |
CitizenIdentification | validation.citizen_identification | Requires that the given value be a citizen identification number of usa, uk or france (see class for details) |
WithoutWhitespace | validation.without_whitespace | Requires that the given value not include any whitespace characters |
The package will receive new rules over time, however since these updates will not be breaking changes, they will not receive major version numbers unless Laravel changes in such a way that the package requires a re-write.
Contributions
You are welcome to submit pull requests containing your own validation rules, however to be accepted, they must explain what they do, be useful to others, and include a suitable test to confirm they work correctly.
License
The MIT License (MIT). Please see License File for more information.