matriphe/laraciproid

Indonesia city and province data migration and seeder for Laravel.

1.4 2017-09-07 05:25 UTC

This package is auto-updated.

Last update: 2021-09-21 13:37:07 UTC


README

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.