mohamed7sameer / countries-laravel
Countries for Laravel
Requires
- mohamed7sameer/countries: >=0.5.8
Requires (Dev)
- colinodell/json5: ^1.0
- gasparesganga/php-shapefile: ^2.3
- orchestra/testbench: ~3.0|~4.0|~5.0
- phpunit/phpunit: ~6.0|~7.0|~8.0|~9.0
- squizlabs/php_codesniffer: ^2.3
README
Countries for Laravel
What does it gives you?
This package has all sorts of information about countries:
Validation
The validation is extending Laravel's validation, so you can use it like any other validation rules, like
/** * Store a new blog post. * * @param Request $request * @return Response */ public function store(Request $request) { $this->validate($request, [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', 'country' => 'country' //Checks if valid name.common ]); // The blog post is valid, store in database... }
Which validation rules there is and what there name should be, can all be configured in the configuration file.
'validation' => [ 'rules' => [ 'countryCommon' => 'name.common' ] ]
By changing the configuration like this, we can now access the property name.common
, by the validation rule countryCommon
You have to define all the validations rules in settings, only a few is defined by default, the default is
'rules' => [ 'country' => 'name.common', 'cca2', 'cca3', 'ccn3', 'cioc', 'currencies' => 'ISO4217', 'language', 'language_short' => 'ISO639_3', ]
Documentation
This package is a Laravel bridge, please refer to the main package repository for more information and docs.
Requirements
- PHP 7.0+
- Laravel 5.5+
Installing
Use Composer to install it:
composer require mohamed7sameer/countries-laravel
Publishing assets
You can publish configuration by doing:
php artisan vendor:publish --provider=Mohamed7sameer\\CountriesLaravel\\Package\\ServiceProvider
Usage
After installing you'll have access to the Countries Façade, and the package is based on Laravel Collections, so you basically have access to all methods in Collections, like
$france = Countries::where('name.common', 'France');
Flag routes
You can refer directly to an SVG flag by linking
/mohamed7sameer/countries/flag/download/<cca3-code>.svg
/mohamed7sameer/countries/flag/file/<cca3-code>.svg
Examples:
https://laravel.com/mohamed7sameer/countries/flag/download/usa.svg
https://laravel.com/mohamed7sameer/countries/flag/file/usa.svg
http://mohamed7sameer.test/mohamed7sameer/countries/flag/file/usa.svg
These routes can be turned off in the configuration file:
'routes' => [ 'enabled' => false, ]
Author
License
Countries is licensed under the MIT License - see the LICENSE
file for details
Contributing
Pull requests and issues are more than welcome.