关键词搜索

源码搜索 ×
×

tp6 ThinkPHP省市区(县)街道四级联动扩展

发布2021-12-02浏览692次

详情内容

前端html演示:http://www.xxx.com/region.html

TP6代码调用 

方式一:

$result = json_decode(\yupoxiong\region\facade\Region::getProvince(),true) ;

方式二:重点:$result ->getData() 

  1. use yupoxiong\region\RegionController;
  2. $region = new RegionController();
  3. $result = $region->getRegion();
  4. $result = $result ->getData();
  5. $result =json_decode($result,true);
  6. dump($result);die;

PHP代码调用

  1. <?php
  2. require_once '../vendor/autoload.php';
  3. use yupoxiong\region\RegionController;
  4. $region = new RegionController();
  5. $result = $region->getRegion();
  6. var_dump($result);

composer require yupoxiong/region

TP5.1 版本可以直接运行以下两个命令完成安装

  1. php think region:publish
  2. php think region:migrate

TP6.0 版本可以直接运行以下命令完成安装

php think region:migrate

添加路由

TP5.0 在 /application/route.php 中追加,TP5.1 在 /route/route.php 中追加。

Route::alias('region','\yupoxiong\region\RegionController');

TP6.0版本已经去掉别名路由,可以在路由配置里添加以下路由(多应用模式在应用路由里添加):

  1. Route::group('region',function (){
  2. Route::any('getRegion','\yupoxiong\region\RegionController@getRegion');
  3. Route::any('getProvince','\yupoxiong\region\RegionController@getProvince');
  4. Route::any('getCity','\yupoxiong\region\RegionController@getCity');
  5. Route::any('getDistrict','\yupoxiong\region\RegionController@getDistrict');
  6. Route::any('getStreet','\yupoxiong\region\RegionController@getStreet');
  7. Route::any('searchRegion','\yupoxiong\region\RegionController@searchRegion');
  8. Route::any('searchProvince','\yupoxiong\region\RegionController@searchProvince');
  9. Route::any('searchCity','\yupoxiong\region\RegionController@searchCity');
  10. Route::any('searchDistrict','\yupoxiong\region\RegionController@searchDistrict');
  11. Route::any('searchStreet','\yupoxiong\region\RegionController@searchStreet');
  12. });

使用

获取地区(最常用的方式)

  • url /region/getRegion
  • 参数 parent_id ,可不传(默认0)获取省份,传入上级 id 即可获取该 id 对应的下级

获取省

  • url /region/getProvince
  • 参数 无

获取市

  • url /region/getCity
  • 参数 parent_id ,传入所属省 id 即可获取该省下面的市

获取区

  • url /region/getDistrict
  • 参数 parent_id ,传入所属市 id 即可获取该市下面的区(县)

获取街道

  • url /region/getStreet
  • 参数 parent_id ,传入所属区(县) id 即可获取该市下面的街道

搜索地区

  • url /region/searchRegion
  • 参数 keywords ,搜索地区的关键字
  • 参数 parent_id ,搜索地区的父级 id ,默认0为搜索省份

搜索省

  • url /region/searchProvince
  • 参数 keywords ,搜索地区的关键字

搜索市

  • url /region/searchCity
  • 参数 keywords ,搜索地区的关键字
  • 参数 parent_id ,所属省 id

搜索区

  • url /region/searchDistrict
  • 参数 keywords ,搜索地区的关键字
  • 参数 parent_id ,所属市 id

搜索街道

  • url /region/searchStreet
  • 参数 keywords ,搜索街道的关键字
  • 参数 parent_id ,所属区(县) id

可选配置

可在配置文件中添加以下配置,5.0.* 在 /application/config.php 中追加。

//获取省市区街道缓存、查询字段配置
'region' => [
    //查询缓存秒数,false为不缓存
    'cache' => 20140210,
    //查询字段,可选项:id,name,parent_id,initial,pinyin,citycode,adcode,lng_lat
    'field' => 'id,name',
    //排序,默认为adcode正序
    'order' => 'adcode asc',
]
    

5.1.* 和 6.0 直接运行以下命令即可在 config 目录下生成 region.php 配置文件。

php think region:publish

Facade

TP5.1 和 TP6.0 可以在开发中直接使用以下代码获取数据:

\yupoxiong\region\facade\Region::getProvince();
//更多可参考该类

测试相关

安装配置好之后可以将vendor/yupoxiong/region/tests/region.html放到项目public目录下访问测试扩展是否可用

官网:GitHub - yupoxiong/region: ThinkPHP5/6省市区(县)街道四级联动扩展

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载