改写ThinkPHP的U方法使其路由下分页正常
发布:smiling 来源: PHP粉丝网 添加日期:2021-03-09 10:44:05 浏览: 评论:0
这篇文章主要介绍了改写ThinkPHP的U方法使其路由下分页正常的方法,需要的朋友可以参考下,ThinkPHP3.1.3在启用路由的情况下,其分页地址不是路由的地址,由于thinkphp3.2.1的代码也没有修复,很多人都遇到了这一问题,本文采纳olcms的修改方法解决这一问题,特别感谢phper jack对此做出的贡献,具体解决办法是修改ThinkPHP的functions.php的U方法,在287行左右:
- if(!emptyempty($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替换为路由规则
- }
- }
- }
- }
- }
至此问题得以解决!
Tags: ThinkPHP路由分页 U方法
相关文章
- ·ThinkPHP中U方法的使用浅析(2021-02-19)
- ·ThinkPHP里用U方法调用js文件实例(2021-05-28)
- ·thinkPHP中U方法加密传递参数功能示例(2021-09-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)