Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Validate Laravel Package

milwad/laravel-validate

Enhanced Laravel validation with a large set of custom rule classes and helper methods for faster, cleaner advanced validation. Includes localization support and works with Laravel 9+ (PHP 8+), with community-contributed language packs.

View on GitHub
Deep Wiki
Context7

Laravel Validate

PHP Version Require Latest Stable Version Total Downloads License Passed Tests Quality Score Check Imports Ask DeepWiki MadeWithLaravel.com shield

Introduction


The Laravel-Validate package enhanced Laravel validation capabilities with custom rules and methods for simplified and efficient validation logic. You can validate data more easily. The Laravel Validate has lots of rule classes for validation. This package supports localization and can be used for most languages. (If some language didn't support, you can create PR for new language)

AI Documentation

Requirements


  • PHP >= 8.0
  • Laravel >= 9.0
GitHub L6 L7 L8 L9 L10 L11 L12 L13
1.5 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x: :x: :x:
1.6 :x: :x: :x: :white_check_mark: :white_check_mark: :x: :x: :x:
1.7 :x: :x: :x: :white_check_mark: :white_check_mark: :x: :x: :x:
1.8 :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x:
1.9 :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:
2.0 :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

Installation

You can install the package with Composer.

composer require milwad/laravel-validate

Publish

If you want to publish a config file, you can run the following command on your terminal:

php artisan vendor:publish --tag="laravel-validate-config"

If you want to publish a lang file for a custom validation message, you can run this command in the terminal:

php artisan vendor:publish --tag="validate-lang-{$lang}"

You can replace $lang with your language name, for example:

php artisan vendor:publish --tag="validate-lang-en"

You can see the Support Languages section if you don't know the language's name.

Configurations

If you may use rules with a string like ValidPhone, you need to change the config option to true:

/*
 * If you want to use rules like 'required|ValidPhone' in your validations, you can change it to true.
 */
'using_container' => false,

If using_container is set to true, you might have rules like this:

'phone_number' => 'required|ValidPhone',

And ValidPhone would be a class that is resolved via the service container to check the validity of the phone number.

Usage

You can use Laravel-Validate Rules very simply. You can use the new keyword before the rule name.

use Milwad\LaravelValidate\Rules\ValidPhoneNumber;

return [
    'phone' => ['required', new ValidPhoneNumber()],
];

Rules

# Rule name Usage
1 ValidBase64 Validate base64 for ex (bWlsd2Fk)
2 ValidBitcoinAddress Validate bitcoin address for ex (1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY)
3 ValidCamelCase Validate camel case for ex (milwadDev)
4 ValidCapitalCharWithNumber Validate String for ex (MILWAD-84)
5 ValidCarNumber Validate car number for ex (KA01AB1234)
6 ValidCartNumberIran Validate cart number for ex (1234123412341234)
7 ValidCountry Validate country name for ex (United Arab Emirates)
8 ValidCreditCard Validate credit card for ex (4111111111111111)
9 ValidDiscordUsername Validate username discord for ex (Milwad#2134)
10 ValidDomain Validate domain name for ex (github.com)
11 ValidDuplicate Validate duplicate string, numbers for ex (1123456)
12 ValidDuplicateCharacter Validate duplicate characters for ex (1,2,3,4,5,6,7,8,9)
13 ValidEvenNumber Validate number is even for ex (1024)
14 ValidHashtag Validate hashtag for ex (#milwad)
15 ValidHexColor Validate hex color for ex (#fcba03)
16 ValidHtmlTag Validate html tags for ex (<h1></h1>)
17 ValidIban Validate IBAN ex (IR062960000000100324200001)
18 ValidImei Validate imei phone for ex (354809104295874)
19 ValidIpAddressIPV4 Validate ip address IPV4 for ex (129.144.50.56)
20 ValidIpAddressIPV6 Validate ip address IPV6 for ex (2001:db8:3333:4444:5555:6666:7777:8888)
21 ValidIranPostalCode Validate Iran postal code ex (3354355599)
22 ValidJalaliDate Validate jalali date for ex (1384/8/25)
23 ValidJwt Validate jwt for ex (eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6dHJ1ZSwiZXhwIjoxNTgyNjE2MDA1fQ.umEYVDP_kZJGCI3tkU9dmq7CIumEU8Zvftc-klp-334)
24 ValidKebabCase Validate kebab case for ex (milwad-dev)
25 ValidLatitude Validate latitude for ex (50.1109)
26 ValidLongitude Validate longitude for ex (51.377225156511855)
27 ValidNameDaysWeek Validate day week for ex (monday)
26 ValidNationalCard Validate national card for ex (015016437)
27 ValidOddNumber Validate number is odd for ex (4321)
28 ValidPascalCase Validate pascal case for ex (MilwadDev)
29 ValidPattern Validate texts with specific pattern 🔥 for ex (4444-4444-4444)
30 ValidPhoneNumber Validate phone number for ex (09366000000)
31 ValidPort Validate port value for ex (8080)
32 ValidSlashEndOfString Validate write slash at the string for ex (milwad/)
33 ValidSlug Validate slug for ex (milwad-dev)
34 ValidSnakeCase Validate snake case for ex (milwad_dev)
35 ValidStrongPassword Validate password for ex (Milwad123!)
36 ValidUlid Validate ulid for ex (01ARZ3NDEKTSV4RRFFQ69G5FAV)
37 ValidUrl Validate url for ex (https://www.google.com)
38 ValidUsername Validate username for ex (milwad)
39 ValidUuid Validate uuid for ex (123e4567-e89b-12d3-a456-426655440000)
40 ValidVatId Validate european VAT ID ex (EL123456789123)
41 ValidLandlineNumber Validate landline number

Support Languages

If a language is not supported, you can make issue to add it. Also, you can make PR to add it.

  • Arabic (ar)
  • Azerbaijani (az)
  • Bangla (bn)
  • Catalan (ca)
  • Dutch (nl)
  • German (de)
  • Greek (el)
  • English (en)
  • Spanish (es)
  • Persian (fa)
  • French (fr)
  • Hindi (hi)
  • Indonesian (id)
  • Italian (It)
  • Japanese (ja)
  • Korean (ko)
  • Kurdish Sorani (ku_so)
  • Português Brasil (pt_BR)
  • Russian (ru)
  • Sinhala (si)
  • Swedish (sv)
  • Turkish (tr)
  • Ukrainian (uk)
  • Chinese (zh_CN)

Adding Custom Phone Country Validator

If you need to add a custom phone number validator for a specific country, follow the steps below.

1. Create Your Custom Validator Class

First, you need to create a custom validator class that implements the Milwad\LaravelValidate\Utils\CountryPhoneValidator contract. This contract ensures that your custom validator adheres to the required structure and functionality.

namespace App\Validators;

use Milwad\LaravelValidate\Utils\CountryPhoneValidator;

class CustomPhoneValidator implements CountryPhoneValidator
{
    /**
     * Validate the phone number for the custom country.
     */
    public function validate(string $phoneNumber): bool
    {
        // Implement the phone number validation logic for your country
        // Example: Check if the phone number matches a specific pattern
        return preg_match('/^\+1234\d{10}$/', $phoneNumber);
    }
}

2. Add the Validator to the Configuration File

Once you've created the custom validator class, add it to the configuration file (config/laravel-validate.php) under the 'phone-country' array.

For example, if you're adding a validator for the country XY:

'phone-country' => [
    // Existing validators...
    'XY' => \App\Validators\CustomPhoneValidator::class, // Custom country
],

This tells the system to use your custom validator for phone numbers from country XY.

3. Validation Usage

Once your custom validator is set up, you can use it in your application like any other validator:

return [
    'phone_ir' => [new ValidPhoneNumber('XY')],
];

License

  • This package is created and modified by Milwad Khosravi for Laravel over more than 9 and has been released under the MIT License.

Contributing

This project exists thanks to all the people who contribute. CONTRIBUTING

Security

If you've found a security bug, please email milwad.dev@gmail.com instead of using the issue tracker.

Star History

Star History Chart

Donate

If this package is helpful for you, you can buy a coffee for me :) ❤️

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
craftcms/url-validator
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony