php 多城市,thinkphp3.2 一站多城市配置

# 配置省份二级,城市三级目录

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;

},

)

~~~

之所以从数据库查的,原因是我们不可能配置对所有省份,城市,这是吃力不讨好的,所以只能让其自动匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值