Skip to content

Indonesia city and province data migration and seeder for Laravel.

Notifications You must be signed in to change notification settings

matriphe/laraciproid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laraciproid

Laravel City Province ID

Indonesia city and province data migration and seeder for Laravel 5.x.

Installation

Using composer, run this command from your Laravel's project root directory:

composer require matriphe/laraciproid:~1.0

Configuration

Laravel 5.5

Nothing to do. Laraciproid will be loaded automatically.

Laravel 5.1, 5.2, 5.3, and 5.4

Open config/app.php and add this line on autoloaded service providers section.

'providers' => [
	...
	Matriphe\Laraciproid\ServiceProvider::class,
	...
],

Laravel 5.0

Open config/app.php and add this line on autoloaded service providers section.

'providers' => [
        ...
        'Matriphe\Laraciproid\ServiceProvider',
        ...
],

Publish Vendor

php artisan vendor:publish

Or if you want to more specific, and want to force the vendor publishing.

php artisan vendor:publish --provider="Matriphe\Laraciproid\ServiceProvider" --force

This command will add these files to your project:

  • config/laraciproid.php, the configuration file containing tables name.
  • database/migrations/2015_09_28_175100_create_city_province_tables, the migration file.
  • database/sql/city.sql, SQL file for city seed.
  • database/sql/province.sql, SQL file for province seed.
  • database/json/cities.json, JSON file for cities seed.
  • database/json/provinces.json, JSON file for provinces seed.
  • database/seeds/LaraciproidSeeder.php, table seeder file, read the SQL data.
  • app/Models/City.php, city model file.
  • app/Models/Province.php, province model file.

Run Migration

php artisan migrate

Run Database Seeder

php artisan db:seed --class=LaraciproidSeeder

You can add this file to your database/seeds/DatabaseSeeder.php to make it auto loaded on seeding command.

public function run()
{
    Model::unguard();

    $this->call('LaraciproidSeeder');
}

Relationship

Province table has one to many relationship of City table.

// Get all cities under DI Yogyakarta (province_id = 34)
$cities = App\Models\Province::find(34)->cities;

foreach ($cities as $city) {
    // Do something
}

// Get province name of Bogor (city_id = 3271)
$city = App\Models\City::find(3271);
$province_name = $city->province->province_name;

License

The MIT License (MIT). Please see License File for more information.