改写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 相关文章推荐
为查询结果建立向后/向前按钮
Oct 09 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
简单的cookie计数器实现源码
Jun 07 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
php操作redis缓存方法分享
Jun 03 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 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
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
Bootstrap进度条组件知识详解
2016/05/01 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
pygame实现非图片按钮效果
2019/10/29 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
对python中list的五种查找方法说明
2020/07/13 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
python空元组在all中返回结果详解
2020/12/15 Python
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
培训专员岗位职责
2014/02/26 职场文书
民主评议党员工作总结
2014/10/20 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
党员个人年度总结
2015/02/14 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
MySQL 时间类型的选择
2021/06/05 MySQL
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python