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


Posted in PHP onJuly 02, 2014

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);
 }

后面加入以下代码

/*
* tp开启路由之后下一页路由失效问题 分页类URL组装
*/
 //如果开启路由
 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替换为路由规则 
        }          
      }
    }
  }
 }

至此问题得以解决!

PHP 相关文章推荐
分享一个PHP数据流应用的简单例子
Jun 01 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
Laravel 实现密码重置功能
Feb 23 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 #PHP
用PHP解决的一个栈的面试题
Jul 02 #PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 #PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 #PHP
php foreach正序倒序输出示例代码
Jul 01 #PHP
浅析ThinkPHP的模板输出功能
Jul 01 #PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 #PHP
You might like
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php接口技术实例详解
2016/12/07 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
决策树的python实现方法
2014/11/18 Python
解析Python中的二进制位运算符
2015/05/13 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
python fabric实现远程部署
2017/01/05 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
python创建文本文件的简单方法
2020/08/30 Python
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
上海方立数码笔试题
2013/10/18 面试题
护士专业推荐信
2013/11/02 职场文书
安全教育实施方案
2014/03/02 职场文书
葬礼司仪主持词
2014/03/31 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
Python实现老照片修复之上色小技巧
2021/10/16 Python
分享Python异步爬取知乎热榜
2022/04/12 Python