Chuyển tới nội dung chính
Phiên bản: 8.0.0

Location2

File: packages/skilldo/cms/src/Location/Location2.php
Class: SkillDo\Cms\Location\Location2 (không có alias ngắn — gọi bằng namespace đầy đủ)

Location2 là một công cụ mạnh mẽ cho việc truy xuất thông tin địa lý cơ bản của Việt Nam, địa chi lấy theo đơn vị hành chính mới áp dụng từ ngày 01/07/2025 — mô hình 2 cấp: Tỉnh/Thành phố → Phường/Xã (không còn cấp Quận/Huyện như Location).

Dữ liệu được lấy từ dịch vụ SkillDo (SKDService::location('v2')) và cache 30 ngày. Các method *Options() chỉ trả về đơn vị có active = true và nhận thêm tham số $column để chọn field hiển thị (mặc định 'fullname').

Tỉnh / Thành phố​

Danh sách​

Lấy danh sách Thành phố trực thuộc Trung ương

\SkillDo\Cms\Location\Location2::provinces()

Kết quả

{
"0": {
"id": 58,
"name": "Hồ Chí Minh",
"fullname": "TP. Hồ Chí Minh",
"keywords": [
"HCM",
"Hcm",
"Sài gòn",
"TP.HCM"
],
"active": true
},
"1": {
"id": 24,
"name": "Hà Nội",
"fullname": "Hà Nội",
"active": true
},
...
}

Options​

Lấy danh sách theo dạng options

\SkillDo\Cms\Location\Location2::provincesOptions($column = 'fullname')
\SkillDo\Cms\Location\Location2::provincesOptions()

Kết quả

[
58 => 'TP. Hồ Chí Minh',
24 => 'Hà Nội',
1 => 'Tỉnh An Giang',
2 => 'Tỉnh Bà Rịa - Vũng Tàu',
3 => 'Tỉnh Bắc Giang',
4 => 'Tỉnh Bắc Kạn',
5 => 'Tỉnh Bạc Liêu',
...
]

Chi tiết​

Lấy chi tiết tỉnh thành phố theo id

\SkillDo\Cms\Location\Location2::provinces(58)

Kết quả

{
"id": 58,
"name": "Hồ Chí Minh",
"fullname": "TP. Hồ Chí Minh",
"keywords": [
"HCM",
"Hcm",
"Sài gòn",
"TP.HCM"
],
"active": true
}

Tên​

Lấy tên tỉnh thành phố

\SkillDo\Cms\Location\Location2::provinceName($provinces_id, $column = 'fullname')
\SkillDo\Cms\Location\Location2::provinceName(58) // TP. Hồ Chí Minh

Tìm id theo slug​

Lấy id tỉnh thành theo slug (field slugId của object tỉnh thành). Không tìm thấy trả về false

\SkillDo\Cms\Location\Location2::provincesIdBySlug('ho-chi-minh') // 58

Phường / Xã / Thị trấn / Thôn / Đội​

Danh sách​

Lấy danh sách Phường xã theo id tỉnh thành

\SkillDo\Cms\Location\Location2::wards($province_id = null)

Kết quả

{
"0": {
"id": 83331,
"name": "Xã Tân Kiên",
"fullname": "Xã Tân Kiên",
"province_id": 58,
"province_name": "TP. Hồ Chí Minh",
"active": true
},
"1": {
"id": 83332,
"name": "Xã An Phú Tây",
"fullname": "Xã An Phú Tây",
"province_id": 58,
"province_name": "TP. Hồ Chí Minh",
"active": true
}
}

Options​

Lấy danh sách theo dạng options

\SkillDo\Cms\Location\Location2::wardsOptions($province_id, $column = 'fullname')
\SkillDo\Cms\Location\Location2::wardsOptions(58)

Kết quả

[
83331 => 'Xã Tân Kiên',
83332 => 'Xã An Phú Tây',
...
]

Chi tiết​

Lấy chi tiết phường xã theo id tỉnh thành và id phường xã

\SkillDo\Cms\Location\Location2::wards(58, 83331); //Xã Tân Kiên

kêt quả

{
"id": 83331,
"name": "Xã Tân Kiên",
"fullname": "Xã Tân Kiên",
"province_id": 58,
"province_name": "TP. Hồ Chí Minh",
"active": true
}

Tên​

Lấy tên phường xã bằng id tỉnh thành và id phường xã

\SkillDo\Cms\Location\Location2::wardName($provinces_id, $ward_id, $column = 'fullname')
\SkillDo\Cms\Location\Location2::wardName(58, 83331); //Xã Tân Kiên

Tìm id theo slug​

Lấy id phường xã theo slug (field slugId) trong phạm vi một tỉnh thành. Không tìm thấy trả về false

\SkillDo\Cms\Location\Location2::wardIdBySlug('xa-tan-kien', 58) // 83331

Địa chỉ đầy đủ​

Ghép tên Phường xã + Tỉnh thành thành chuỗi địa chỉ hoàn chỉnh:

\SkillDo\Cms\Location\Location2::address($provinces_id, $ward_id)
\SkillDo\Cms\Location\Location2::address(58, 83331);
// "Xã Tân Kiên, TP. Hồ Chí Minh"