Polyscope - The agent-first dev environment for Laravel

Laravel Postal Code Validation

axlon/laravel-postal-code-validation image

Laravel Postal Code Validation stats

Downloads
1.3M
Stars
354
Open Issues
0
Forks
28

View on GitHub →

Worldwide postal code validation for Laravel and Lumen

Laravel Postal Code Validation

Worldwide postal code validation for Laravel, based on Google's Address Data Service.

Build status Downloads Latest version License

Requirements

This package has the following requirements:

  • PHP 7.2 or higher
  • Laravel (or Lumen) 5.5 or higher
Laravel / Lumen version Package version
5.1 - 5.4 2.x
5.5 and greater 3.x

Installation

You can install this package with Composer, by running the command below:

composer require axlon/laravel-postal-code-validation

If you have package discovery enabled, that's it, continue to the usage section. If you want to register the package manually, you can do this by adding the following line to your config/app.php file:

'providers' => [
...
Axlon\PostalCodeValidation\ValidationServiceProvider::class,
...
],

Lumen

If you are using Lumen, register the package by adding the following line to your bootstrap/app.php file:

$app->register(Axlon\PostalCodeValidation\ValidationServiceProvider::class);

Usage

Postal code validation perfectly integrates into your Laravel application, you can use it just like you would any framework validation rule.

Available rules

This package adds the following validation rules:

postal_code:foo,bar,...

The field under validation must be a valid postal code in at least one of the given countries. Arguments must be countries in ISO 3166-1 alpha-2 format.

'postal_code' => 'postal_code:NL,DE,FR,BE'

postal_code_with:foo,bar,...

The field under validation must be a postal code in at least one of the countries in the given fields only if at least one of the specified fields is present.

'billing.country' => 'required|string|max:2',
...
'shipping.country' => 'nullable|string|max:2',
'shipping.postal_code' => 'postal_code_with:billing.country,shipping.country'

Fluent API

If you prefer using a fluent object style over string based rules, that's also available:

'postal_code' => [
PostalCode::for('NL')->or('BE'),
],

The same goes for the postal_code_with rule:

'billing.country' => 'required|string|max:2',
...
'shipping.country' => 'nullable|string|max:2',
'shipping.postal_code' => [
PostalCode::with('billing.country')->or('shipping.country')
],

Adding an error message

To add a meaningful error message, add the following lines to resources/lang/{your language}/validation.php:

'postal_code' => 'Your message here',
'postal_code_with' => 'Your message here',

The following placeholders will be automatically filled for you:

Placeholder Description
:attribute The name of the field that was under validation
:countries The countries that were validated against (e.g. NL, BE)*
:examples Examples of allowed postal codes (e.g. 1234 AB, 4000)*

*The :countries and :examples placeholders may be empty if no valid countries are passed.

Manually validating

If you want to validate postal codes manually outside of Laravel's validation system, you can call the validator directly, like so:

PostalCodes::passes($country, $postalCode); // returns a boolean

Overriding rules

Depending on your use case you may want to override the patterns used to validate postal codes for a country. You can do this by adding the code below in a central place in your application (e.g. a service provider):

PostalCodes::override('country', '/your pattern/');
 
// You can also pass overrides as an array
 
PostalCodes::override([
'country 1' => '/pattern 1/',
'country 2' => '/pattern 2/',
]);

Important: If you believe there is a bug in one of the patterns that this package ships with, please create an issue in the issue tracker.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

This open-source software is licenced under the MIT license. This software contains code generated from Google's Address Data Service, more information on this service can be found here.

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Axlon Laravel Postal Code Validation Related Articles

Laravel Postal Code Validation image

Laravel Postal Code Validation

Read article
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
CodeKudu logo

CodeKudu

Stand-ups, Retrospectives, and 360° Feedback for the entire team. 50% off with code LARAVELNEWS.

CodeKudu
Statamic logo

Statamic

The drop-in ready Laravel CMS you’re been waiting for. Go full-stack or headless, flat file or database – it’s up to you.

Statamic
Securing Laravel logo

Securing Laravel

The essential security resource for Laravel devs, covering everything you need to keep your apps secure. Sign up to receive weekly security tips and monthly in depth articles, diving deep into security concepts you need to know!

Securing Laravel
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing