当前位置: 首页 > 编程笔记 >

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

柴博
2023-03-14
本文向大家介绍改写ThinkPHP的U方法使其路由下分页正常,包括了改写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);
 }

后面加入以下代码

/*
* 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替换为路由规则 
        }          
      }
    }
  }
 }

至此问题得以解决!

 类似资料:
  • 本文向大家介绍ThinkPHP中U方法的使用浅析,包括了ThinkPHP中U方法的使用浅析的使用技巧和注意事项,需要的朋友参考一下 thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定): U('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N]') 或者用数组的方式传入参数: U('[项目://][路由@][分组名-模块/]操作',array('参数

  • 在我的React项目中,我有: 没有标题的登录组件 问题:我应该如何构建我的路由器从登录页面开始,当我点击登录时,路由器会把我带到仪表板?

  • 本文向大家介绍thinkPHP下ueditor的使用方法详解,包括了thinkPHP下ueditor的使用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP下ueditor的使用方法。分享给大家供大家参考,具体如下: 1、首先需要下载ueditor,下载地址:http://ueditor.baidu.com/website/download.html 2、下载对应的p

  • 本文向大家介绍vue2路由方式--嵌套路由实现方法分析,包括了vue2路由方式--嵌套路由实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue2嵌套路由实现方法。分享给大家供大家参考,具体如下: 前面讲过了vue2路由基本用法,一般应用中的路由方式不会像上述例子那么简单,往往会出现二级导航这种情况。这时就需要使用嵌套路由这种写法。 上文中的 importFile,jsp 在上

  • 本文向大家介绍ThinkPHP让分页保持搜索状态的方法,包括了ThinkPHP让分页保持搜索状态的方法的使用技巧和注意事项,需要的朋友参考一下 对很多使用ThinkPHP框架的人来说,使用自动自带的增删改查基类,在分页的时候要保持结果页面的搜索状态,但是使用thinkphp手册中的方案却无法奏效。 ThinkPHP手册中的解决方法是: 直接粘贴过来不能用,经过调试会发现,当$map不是一个数组的时

  • 本文向大家介绍thinkphp常见路径用法分析,包括了thinkphp常见路径用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了thinkphp常见路径用法。分享给大家供大家参考。具体如下: 这里介绍的标签主要有: __root__ __self__ __action__ __url__ __app__ __public__ 假如你项目首页的URL是:www.test.com/oth