Country & state helper for Laravel.

4.2 2023-01-30 22:08 UTC

This package is auto-updated.

Last update: 2023-05-29 00:40:42 UTC


Latest Stable Version Total Downloads License

A helper to list countries & states in English in Laravel 6.0+.

What's Changed in 4.0

  • PHP 7.4+ or 8.0+ required


Require this package with composer:

composer require dougsisk/laravel-country-state

This package will automatically be discovered by Laravel, if enabled. If you don't have auto package discovery on, you'll need to add the following service provider to your config/app.php:


Copy the package config to your local config with the publish command:

php artisan vendor:publish --provider="DougSisk\CountryState\CountryStateServiceProvider" --tag="config"


By default, the helper will preload states for the US. You can change this via the preloadCountryStates config option:

'preloadCountryStates' => ['CA', 'MX', 'US']

If you don't want every country to be returned, you can define countries using the limitCountries config option:

'limitCountries' => ['CA', 'MX', 'US']


You may now use the CountryState facade to access countries and states.

Remember to import the namespace to access the facade in your files:

use CountryState;

To get an array of countries:

$countries = CountryState::getCountries();

The array keys will be the countries' 2 letter ISO code and the values will be the countries' English name. You may also set the 3 letter ISO key as the argument to receive translations of the countries' names (limited support).

To get an array of a country's states, simply pass the country's 2 letter ISO code:

$states = CountryState::getStates('US');

The array keys will be the states' 2 letter ISO code and the values will be the states' English name.


This library is available under the MIT license.