修正Thinkphp 3.2 分页Page类以支持URL路由

Posted 码农编程进阶笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修正Thinkphp 3.2 分页Page类以支持URL路由相关的知识,希望对你有一定的参考价值。

http://www.thinkphp.cn/topic/22114.html

最终目的实现以http://www.fl900.com/product/lists/1-0-0-1.html这样的URL形式且支持分页。
路由配置:

‘/^product/lists/(d+)-(d+)-(d+)-(d+)$/‘  => ‘Product/lists?id=:1&aid=:2&sid=:3&p=:4‘,

修正LibraryThinkPage.class.php分类以支持路由

    //在23行,修改访问修饰符private为public
    public $url=‘‘;
    //在70行,防止经过传参后会出现问题urlencode(‘[PAGE]‘)转为小写,修改为
    $this->url = str_replace(strtolower(urlencode(‘[PAGE]‘)), $page, $this->url);//开启URL不区分大小写时处理
    return str_replace(urlencode(‘[PAGE]‘), $page, $this->url);
    //在80行,修正为以下实现自定义URL
    /* 生成URL */
            if(empty($this->url)){
                $this->parameter[$this->p] = ‘[PAGE]‘;
                $this->url = U(ACTION_NAME, $this->parameter);
            }
    //使用示例
    $Page       = new ThinkPage($count,15);// 实例化分页类 传入总记录数和每页显示的记录数(25)
    $page_tpl = urlencode(‘[PAGE]‘); 
    $Page->url   =   U("Product/list/{$this->id}-{$this->aid}-{$this->sid}-{$page_tpl}");
    $show       = $Page->show();

 


以上是关于修正Thinkphp 3.2 分页Page类以支持URL路由的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPhp 3.2 ajax无刷新分页(未完全改完,临时凑合着用)

ThinkPHP数据分页Page.class.php

thinkphp5 分页问题

thinkphp 分页

thinkphp-分页

ThinkPHP使用心得分享-分页类Page的用法