栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

改写ThinkPHP的U方法使其路由下分页正常

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

改写ThinkPHP的U方法使其路由下分页正常

ThinkPHP3.1.3在启用路由的情况下,其分页地址不是路由的地址,由于thinkphp3.2.1的代码也没有修复,很多人都遇到了这一问题,本文采纳olcms的修改方法解决这一问题,特别感谢phper jack对此做出的贡献,具体解决办法是修改ThinkPHP的functions.php的U方法,在287行左右:

 if(!empty($vars)) { 
 // 添加参数
 foreach ($vars as $var => $val){
 if('' !== trim($val))
 $url .= $depr . $var . $depr . urlencode($val);
 }

后面加入以下代码


 //如果开启路由
 if(C('URL_ROUTER_ON')){ 
  foreach (C('URL_ROUTE_RULES') as $zhaolg => $zlig){//遍历路由     
    if(strstr('/'.GROUP_NAME.$url,$zlig)){//从网址中找路由规则
      $lg = strstr($zhaolg,'/:');//分析规则 带参数?
      if($lg){//如果规则带参数
 $tempzlg = str_replace('/:','',$lg);//取参数
 //dump($tempzlg); 
 if($tempzlg){
   if(C('APP_SUB_DOMAIN_DEPLOY')){
     $zlgurl = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url); //url替换为路由规则 
   }else{
     $zlgurl = str_replace($zlig,$zhaolg,$url); //url替换为路由规则 
   }  
   //注 /s/:c/c/4/p/__PAGE__
   //dump($zlgurl);
   $url = str_replace($lg.'/'.$tempzlg,'',$zlgurl);//url替换路由规则参数
   
 }  
      }else{//分析规则 不带参数
 if(C('APP_SUB_DOMAIN_DEPLOY')){
   $url = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url);//url替换为路由规则
 }else{
   $url = str_replace($zlig,$zhaolg,$url);//url替换为路由规则 
 }   
      }
    }
  }
 }

至此问题得以解决!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/47817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号