laravel-countries maintained by centrex
Countries database for Laravel
A complete country database seeded from a JSON source. Provides an Eloquent Country model with support for listing and sorting by any country field, and lookup by country code.
Installation
composer require centrex/laravel-countries
php artisan vendor:publish --tag="laravel-countries-migrations"
php artisan migrate
php artisan db:seed --class="Centrex\LaravelCountries\Database\Seeders\CountrySeeder"
Usage
use Centrex\LaravelCountries\Models\Country;
// Get all countries
Country::all();
// Find by country code (ISO 3166-1)
Country::whereCountryCode('BD')->first();
// Get sorted list (sortable by: capital, citizenship, country-code, currency, ...)
$model = new Country();
$list = $model->getList('capital'); // sorted by capital city
// Get a single country by ID
$country = $model->getOne('BD');
Config
php artisan vendor:publish --tag="laravel-countries-config"
// config/countries.php
'table_name' => 'countries',
Used by laravel-addresses
This package is a dependency of laravel-addresses — the countries table provides the foreign key for address country validation.
Testing
composer test # full suite
composer test:unit # pest only
composer test:types # phpstan
composer lint # pint
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.