Skip to content

Laravel 5 wrapper for the IsoCodes Validation library from ronanguilloux

License

Notifications You must be signed in to change notification settings

pixelpeter/laravel5-isocodes-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fa868bd · Oct 9, 2021

History

54 Commits
Jan 30, 2017
Sep 4, 2020
Mar 15, 2019
May 22, 2016
Mar 13, 2019
Mar 15, 2019
Mar 15, 2019
May 22, 2016
Oct 9, 2021
Aug 5, 2019
Mar 13, 2019

Repository files navigation

Laravel 5 IsoCodes Validation

Latest Version on Packagist Software License Travis Build Scrutinizer Quality Scrutinizer Build Total Downloads Coverage Status

A simple Laravel 5 wrapper for the IsoCodes Validation library from ronanguilloux.

For a Laravel 8 compatible version please use https://github.com/pixelpeter/laravel-isocodes-validation

Installation

Step 1: Install Through Composer

composer require pixelpeter/laravel5-isocodes-validation

Step 2: Add the Service Provider

(not needed starting with v2.x because of auto discovery)

Add the service provider in app/config/app.php

'provider' => [
    ...
    Pixelpeter\IsoCodesValidation\IsoCodesValidationServiceProvider::class,
    ...
];

Usage

Simple examples

// Checking out your e-commerce shopping cart?
$payload = [
    'creditcard' => '12345679123456'
];
$rules = [
    'creditcard' => 'creditcard'
];

$validator = Validator::make($payload, $rules);

Examples with reference parameter

Some rules need a reference to be validated against (e.g. country for zipcode).

Just pass the name of the field holding the reference to the rule.

// Sending letters to the Labrador Islands ?
$payload = [
    'zipcode' => 'A0A 1A0',
    'country' => 'CA'
];
$rules = [
    'zipcode' => 'zipcode:country'
];

$validator = Validator::make($payload, $rules);

// Publishing books?
$payload = [
    'isbn' => '2-2110-4199-X',
    'isbntype' => 13
];
$rules = [
    'zipcode' => 'isbn:isbntype'
];

$validator = Validator::make($payload, $rules);

Example with arrays and dot notation

(added in v3.x)

As suggested by @otr-tomek I've added support for all validation methods using arrays in dot notation as an input.

$payload = [
    'data' => [
        [
            'country' => 'DE',
            'zipcode' => 63741
        ],
        [
            'country' => 'AT',
            'zipcode' => 1180
        ]
  ] 
];

$validator = Validator::make($payload, [
    'data.*.zipcode' => 'zipcode:data.*.country'
]);

Validation error messages

Error messages can contain the name and value of the field and the value of the reference

$payload = [
    'phonenumber' => 'invalid',
    'country' => 'GB'
];
$rules = [
    'phonenumber' => 'phonenumber:country'
];

$validator = Validator::make($payload, $rules);

print $validator->errors()->first(); // The value "invalid" of phonenumber is not valid for "GB".

More Examples

Refer to IsoCodes Validation library for more examples and documentation.

Testing

Run the tests with:

vendor/bin/phpunit

License

GNU General Public License v3.0 only. Please see License File for more information.

About

Laravel 5 wrapper for the IsoCodes Validation library from ronanguilloux

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages