Database of Vietnam's area.
Data are taken directly from the General Statistics Office of Vietnam.
composer require hoangphi/vietnam-maps
Extract directly via command:
php artisan vietnam-map:install
php artisan vendor:publish --provider="HoangPhi\VietnamMap\VietnamMapServiceProvider"
- Rename table
Open file config/vietnam-maps.php
and config:
'tables' => [
'provinces' => 'provinces',
'districts' => 'districts',
'wards' => 'wards',
],
- Rename column
Open file config/vietnam-maps.php
and config:
'columns' => [
'name' => 'name',
'gso_id' => 'gso_id',
'province_id' => 'province_id',
'district_id' => 'district_id',
],
- Add column
Open the following migration files and customize if you need:
database/migrations/{datetime}_create_vietnam_maps_table.php
php artisan migrate
php artisan vietnam-map:download
- Get all provinces, districts, wards
use HoangPhi\VietnamMap\Models\Province;
use HoangPhi\VietnamMap\Models\District;
use HoangPhi\VietnamMap\Models\Ward;
class DevController extends Controller
{
...
public function dev()
{
$provinces = Province::all();
$districts = District::all();
$wards = Ward::all();
...
}
}
- Get data using relationship
use HoangPhi\VietnamMap\Models\Province;
class DevController extends Controller
{
...
public function dev()
{
$province = Province::first();
$districts = $province->districts;
...
}
}
- Relation in Province.php
class Province extends Model
{
...
public function districts()
{
return $this->hasMany(District::class);
}
}
- Relation in District.php
class District extends Model
{
...
public function province()
{
return $this->belongsTo(Province::class, config('vietnam-maps.columns.province_id'), 'id');
}
public function wards()
{
return $this->hasMany(Ward::class);
}
}
- Relation in Ward.php
class Ward extends Model
{
...
public function district()
{
return $this->belongsTo(District::class, config('vietnam-maps.columns.district_id'), 'id');
}
}
Please see CHANGELOG for more information what has changed recently.
If you discover any security-related issues, please email hoangphidev@gmail.com instead of using the issue tracker.
The Laravel framework is open-sourced software licensed under the MIT license.