Xin chào các bạn, hôm nay mình xin chia sẻ với các bạn cơ sỡ dữ liệu đơn vị hành chính của Việt Nam: Tỉnh/Thành phố, Quận/Huyện, Phường/Xã cho Laravel
Đây là lần đầu tiên mình viết bài lên đây, có thể không được hay lắm thì mong các bạn thông cảm
Giới thiệu
Hôm trước mình có làm một dự án cần lấy dữ liệu về đơn vị hành chính của Việt Nam, do đó mình đã đóng gói lại thành package cho Laravel và chia sẽ cho mọi người.
Link em nó đây: https://github.com/kjmtrue/vietnam-zone
Package này có gì:
- Data được trích xuất trực tiếp từ Tổng Cục Thống Kê cho nên các bạn yên tâm về độ chính xác và dữ liệu luôn luôn được cập nhật mới nhất.
- Cài đặt nhanh gọn.
- Hỗ trợ Laravel 5.8 trở lên.
Cài đặt
Cài đặt thông qua composer:
1 2 | composer require kjmtrue/vietnam-zone |
Copy file config và migration
1 2 | php artisan vendor:publish --provider="KjmtrueVietnamZoneServiceProvider" |
Nếu bạn không cần tùy biến CSDL thì có thể bỏ qua bước này và qua phần Import dữ liệu
Tùy biến CSDL
Nếu các bạn muốn tùy chỉnh cấu trúc của bảng CSDL cho dự án của mình thì làm như sau:
Đổi tên bảng
Mở file config/vietnam-zone.php
lên và thay đổi phần tables
:
1 2 3 4 5 6 | <span class="token single-quoted-string string">'tables'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'provinces'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'provinces'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'districts'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'districts'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wards'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'wards'</span><span class="token punctuation">,</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> |
Đổi tên cột
Mở file config/vietnam-zone.php
lên và thay đổi phần columns
:
1 2 3 4 5 6 7 | <span class="token single-quoted-string string">'columns'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">[</span> <span class="token single-quoted-string string">'name'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'name'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'gso_id'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'gso_id'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'province_id'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'province_id'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'district_id'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'district_id'</span><span class="token punctuation">,</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> |
Trong đó gso_id
không phải là ID ngẫu nhiên hay tăng dần mà đó là mã địa giới chính thức được ban hành theo quyết định số 124/2004/QĐ-TTg của chính phủ vào ngày 08/7/2004.
Cột này sẽ được dùng để tham chiếu cho những lần cập nhật dữ liệu sau này.
province_id
và district_id
là cột khóa ngoại.
Thêm cột
Mở các file migration sau và tuỳ chỉnh theo ý thích:
1 2 3 4 | database/migrations/2020_01_01_000001_create_provinces_table.php database/migrations/2020_01_01_000002_create_districts_table.php database/migrations/2020_01_01_000003_create_wards_table.php |
Import dữ liệu
Chạy lệnh migrate để thực hiện việc tạo bảng.
1 2 | php artisan migrate |
Cuối cùng là download và import dữ liệu vào bằng lệnh sau:
1 2 | php artisan vietnamzone:download |
Tổng kết
Trên đây là bài chia sẽ của mình, bạn nào có thắc mắc hoặc có yêu cầu để mình bổ xung vào thư viện thì hãy comment cho mình biết bên dưới nha.
Anh em nào đi qua thấy hay thì cho mình xin một sao để lấy động lức update tiếp nha.
Cảm ơn các bạn đã dành thời gian ủng hộ bài viết của mình!