DougSisk / laravel-country-state by DougSisk

Country & state helper for Laravel.
883,259
142
4
Package Data
Maintainer Username: DougSisk
Package Create Date: 2015-10-02
Package Last Update: 2024-02-02
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 03:04:04
Package Statistics
Total Downloads: 883,259
Monthly Downloads: 25,844
Daily Downloads: 1,023
Total Stars: 142
Total Watchers: 4
Total Forks: 15
Total Open Issues: 3

Laravel Country & State Helper

SensioLabsInsight Build Status Latest Stable Version Total Downloads License

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

What's Changed in 2.0

  • PHP 7+ required
  • Dropped Laravel 5.0 support
  • Replaced phine/country with rinvex/country
  • Basic support for country name translations
  • Exceptions when implicitly loading fails for country or state
  • Removed HTTP helper to load states

Installation

Require this package with composer:

composer require dougsisk/laravel-country-state

After updating composer, add the CountryStateServiceProvider to the providers array in config/app.php (not required for Laravel 5.5+ thanks to package auto-discovery)

DougSisk\CountryState\CountryStateServiceProvider::class,

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

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

Configuration

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']

Usage

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.

License

This library is available under the MIT license.