znck / cities
A list of cities
Installs: 1 184
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >7.0
- illuminate/console: ^5.2
- illuminate/database: ^5.2
- illuminate/support: ^5.2
- symfony/translation: ^3.0
Requires (Dev)
- fabpot/php-cs-fixer: ^1.11
- illuminate/filesystem: >=5.2 <6.0.0
- phpunit/php-code-coverage: ^3.1
- phpunit/phpunit: >=5.2 <6.0.0
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2024-12-21 19:52:56 UTC
README
A cities list provider for Laravel.
Installation
Either PHP 7.0+ is required.
To get the latest version of cities, simply require the project using Composer:
$ composer require znck/cities
Instead, you may of course manually update your require block and run composer update
if you so choose:
{ "require": { "znck/cities": "^0.1.2" } }
Once Cities
is installed, you have to register its service provider. Open config/app.php
and add Znck\Cities\CitiesServiceProvider::class
to providers
key. Your config/app.php
should look like this.
<?php return [ // ... 'providers' => [ // .... Znck\Cities\CitiesServiceProvider::class, ] // ... ];
Usage
- Use
City
trait in you Eloquent model.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Znck\Cities\City as CityTrait; class City extends Model { use CityTrait; }
- Cities provides command (
php artisan cities:update
) to update list in database.
Configuration
Table names for cities and states are required. By default cities
and states
are used, but you can override these.
To get started, you'll need to publish all vendor assets:
php artisan vendor:publish --provider='Znck\Cities\CitiesServiceProvider'
This will create a config/cities.php
file in your app that you can modify to set your configuration. Also, make sure you check for changes to the original config file in this package between releases.
Conventions
Expected schema:
Schema::create('countries', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('code', 2)->unique(); $table->timestamps(); }); Schema::create('states', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('code', 5)->unique(); $table->unsignedInteger('country_id'); $table->timestamps(); $table->foreign('country_id')->references('id')->on('countries'); }); Schema::create('cities', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('code', 10)->unique(); $table->unsignedInteger('state_id'); $table->timestamps(); $table->foreign('state_id')->references('id')->on('states'); });
Development plan
- Create minimal working package.
- Add migrations.
- Integrate
znck/state
andznck/countries
. - Add major cities of India.
- Add translations in all 23 languages.
- Add major cities of World.
License
Cities is licensed under The MIT License (MIT).