laravel-vat-eu-validator is a package inspired from vat.php to validate a VAT number for businesses based in Europe.
You can install the package via composer:
composer require danielebarbaro/laravel-vat-eu-validator
The package will automatically register itself.
use Danielebarbaro\LaravelVatEuValidator\Facades\VatValidatorFacade as VatValidator;
// Check VAT format and VIES existence
VatValidator::validate('IT12345');
// Check VAT format
VatValidator::validateFormat('IT12345678901');
// Check VAT existence
VatValidator::validateExistence('IT12345678901');
The package registers two new validation rules.
vat_number
The field under validation must be a valid and existing VAT number.
vat_number_exist
The field under validation check id is an existing VAT number.
vat_number_format
The field under validation must be a valid VAT number.
use Illuminate\Http\Request;
class Controller {
public function foo(Request $request)
{
$request->validate([
'bar_field' => ['vat_number'],
]);
$request->validate([
'bar_field' => ['vat_number_exist'],
]);
$request->validate([
'bar_field' => ['vat_number_format'],
]);
}
}
Alternatively, you can also use the Rule
directly.
use Illuminate\Http\Request;
use Danielebarbaro\LaravelVatEuValidator\Rules;
class Controller {
public function foo(Request $request)
{
$request->validate([
'bar_field' => [ new Rules\VatNumber() ],
'bar_field' => [ new Rules\VatNumberExist() ],
'bar_field' => [ new Rules\VatNumberFormat() ],
]);
}
}
Just add and customize validation strings in resources/lang/en/validation.php
...
'vat_number' => 'The :attribute must be a valid VAT number.',
'vat_number_format' => 'The :attribute must be write in a valid number format {country_name}{vat_number}.',
'vat_number_exist' => 'VAT number :attribute not exist.',
...
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email barbaro.daniele@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
This package was generated using the Laravel Package Boilerplate.