改写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中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
php中explode的负数limit用法分析
Feb 27 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
Redis构建分布式锁
Mar 28 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 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中{}大括号是什么意思
2013/12/01 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
jQuery live
2009/05/15 Javascript
Prototype Number对象 学习
2009/07/19 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
Python requests模块session代码实例
2020/04/14 Python
Python try except else使用详解
2021/01/12 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
实习求职信
2013/12/01 职场文书
公司中秋节活动方案
2014/02/12 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
啤酒节策划方案
2014/05/28 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
后进生评语大全
2015/01/04 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书