nurfachmi/indonesia

包含印度尼西亚地区(省份、区、县、村庄)的 Laravel 包

dev-main 2023-12-05 04:43 UTC

This package is auto-updated.

Last update: 2024-09-05 07:43:40 UTC


README

Build Status StyleCI License Latest Stable Version Total Downloads

nurfachmi/indonesia (fork azishapidin/indoregion) 是一个 Laravel 包,用于存储从省份、区/市、县/区、村庄到印度尼西亚地区的所有数据。此包将添加迁移、seeder(用于将数据导入数据库)和模型到您的项目中。

所有数据都将保存在数据库中,获取数据的方式与通常通过模型获取数据相同(参见使用部分)。

快速安装

打开命令行,然后运行以下命令进行安装

composer require nurfachmi/indonesia

支持的版本

注册服务提供商

Laravel

如果您使用的是 5.5 或更高版本的 Laravel,可以跳过此部分,因为 indoregion 包已经使用了包自动发现。

但是,如果您的工作项目仍在使用 5.5 以下的版本,请打开文件 config/app.php,然后在服务提供商数组中添加 IndoRegionServiceProvider

// Provider Lain
Nurfachmi\Indonesia\IndoRegionServiceProvider::class,

Lumen

如果您想在 Lumen 项目中使用此包,则必须在 bootstrap/app.php 文件中注册服务提供商,添加以下内容

$app->register(Nurfachmi\Indonesia\IndoRegionServiceProvider::class);

发布文件

在命令行中运行以下命令

php artisan indoregion:publish

运行上述命令后,indoregion 将将

  • /vendor/nurfachmi/indonesia/src/database/migrations 中的迁移文件复制到 /database/migrations
  • /vendor/nurfachmi/indonesia/src/database/seeds 中的 seeder 文件复制到 /database/seeds
  • /vendor/nurfachmi/indonesia/src/database/models 中的模型文件复制到 /app/Models

然后运行以下命令

composer dump-autoload

迁移和 Seeder

运行以下命令以运行迁移和 seeder

php artisan migrate

# Import semua data dari Provinsi sampai Kelurahan sekaligus
php artisan db:seed --class=IndoRegionSeeder      # Import data Provinsi, Kota/Kabupaten, Kecamatan/Distrik dan Desa/Kelurahan

# Anda juga bisa melakukan Import data satu per satu, mulai dari Provinsi sampai Kelurahan
php artisan db:seed --class=IndoRegionProvinceSeeder      # Import data provinsi
php artisan db:seed --class=IndoRegionRegencySeeder       # Import data kota/kabupaten
php artisan db:seed --class=IndoRegionDistrictSeeder      # Import data kecamatan/distrik
php artisan db:seed --class=IndoRegionVillageSeeder       # Import data desa/kelurahan

基本使用

您可以使用以下类,就像使用模型一样。

<?php

use App\Models\Province;
use App\Models\Regency;
use App\Models\District;
use App\Models\Village;

// Get semua data
$provinces = Province::all();
$regencies = Regency::all();
$districts = District::all();
$villages = Village::all();

// Cari berdasarkan nama
$provinces = Province::where('name', 'JAWA BARAT')->first();
$regencies = Regency::where('name', 'LIKE', '%CIANJUR%')->first();
$districts = District::where('name', 'LIKE', 'BANDUNG%')->get();
$villages = Village::where('name', 'BOJONGHERANG')->first();

高级使用

<?php

// Get Kecamatan dari sebuah Provinsi.
$districts = $province->districts;

// Cek jika provinsi memiliki kabupaten terkait menggunakan logika OR bedasarkan nama kabupaten.
$province->hasDistrictName(["SELAKAU TIMUR", "PEMANGKAT", "SEMPARUK", "JAWAK"]);

// Cek jika provinsi memiliki kabupaten terkait menggunakan logika AND bedasarkan nama kabupaten.
$province->hasDistrictName(["SELAKAU TIMUR", "PEMANGKAT", "SEMPARUK", "JAWAI"], true);

// Cek jika provinsi memiliki kabupaten terkait menggunakan logika OR bedasarkan id kabupaten.
$province->hasDistrictId([6101, 6102, 6103, 6104]);

// Cek jika provinsi memiliki kabupaten terkait menggunakan logika AND bedasarkan id kabupaten.
$province->hasDistrictId([6101, 6102, 6103, 6104], true);

// Get Kabupaten/Kota dari sebuah Provinsi
$regencies = $province->regencies;

// Get Kecamatan dari sebuah Kabupaten/Kota
$districts = $regency->districts;

// Get Desa/Kelurahan dari sebuah Kabupaten/Kota
$villages = $regency->villages;

// Cek jika kabupaten memiliki desa/kelurahan terkait menggunakan logika AND bedasarkan nama desa/kelurahan.
$regency->hasVillageName(["PARIT SETIA", "PELIMPAAN", "SEMPARUK"], true);

// Cek jika kabupaten memiliki desa/kelurahan terkait menggunakan logika AND bedasarkan id desa/kelurahan.
$regency->hasVillageId([6101050014, 6101040025, 6101060023, 6101020014]);

// Get Desa/Kelurahan dari sebuah Kecamatan
$villages = $district->villages;

// Cek Desa ada di sebuah Provinsi
$village->isProvince(61);

// Cek Desa ada di sebuah Kabupaten
$village->isRegency(6102);

// Cek Desa ada di sebuah Kecamatan
$village->isDistrict(6101050);

// Cek Kecamatan ada di sebuah Provinsi
$district->isProvince(61);

// Cek Kecamatan ada di sebuah Kabupaten
$village->isRegency(6102);

// Get Kabupaten dari sebuah Desa
$village->regency;

// Get Provinsi dari sebuah Desa
$village->province;

// Get Provinsi dari sebuah Kecamatan
$district->province;