多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 配置省份二级,城市三级目录 Thinkphp 提供多种路由配置方式,有静态路由,正则路由,但这些都是比较简单的,并不能配置省份二级目录,城市三级目录 于是我们只有自定义路由规则:根据thinkphp的路由配置中的闭包支持 格式: 广东:www.xxx.com/gd 广东广州:www.xxx.com/gd/gz 具体配置如下: 在数据库的省表和市表都保存了 目录名称,字段名称为domain ~~~ 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES'=>array( // 匹配省 只接收一个省份参数 ':province$'=>function($province){ if($province) { $provinceModel = M('Province'); $pros = $provinceModel->where(array('domain' => $province))->find(); if($pros){ $_SERVER['PATH_INFO'] = 'BtrBusiness/index/province/'.$province; return false; }else{ return false; } }else return false; }, //只接收省份城市两个参数 ':province/:city$'=>function($province,$city){ if($province) { $provinceModel = M('Province'); $pros = $provinceModel->field(array('id','name'))->where(array('domain' => $province))->find(); if($pros){ if($city){ $cityModel=M('City'); $cityinfo = $cityModel->field(array('id','name'))->where(array('domain' => $city,'province_id'=>$pros['id']))->find(); if($cityinfo){ $_SERVER['PATH_INFO'] = 'BtrBusiness/index/province/'.$province."/city/".$city; return false; }else{ return false; } }else{ return false; } }else{ return false; } }else return false; }, ) ~~~ 之所以从数据库查的,原因是我们不可能配置对所有省份,城市,这是吃力不讨好的,所以只能让其自动匹配