ThinkPHP3.2.2分页url规则路由设置

ThinkPHP3.2.2分页url规则路由设置

在TP3.1时,分页的Page类还能使用规则路由,到TP3.2的时候就不行了,同样的方法设置不行,网上搜了下,也没找到想要的答案,想了一想,直接看3.1的分页类怎么写的不就好了,接着打开了3.1的分页类…话不多说,直接改代码;

1、先将page类里的url私有属性(private)改成公共(public)

2、找到show方法里的以下代码:

$this->parameter[$this->p] = '[PAGE]';
$this->url = U(ACTION_NAME, $this->parameter);

将上面代码改成:

if (empty($this->url)) {
    $this->parameter[$this->p] = '[PAGE]';
    $this->url = U(ACTION_NAME, $this->parameter);
}else {
    $depr = C('URL_PATHINFO_DEPR');
    $this->url = rtrim(U('/'.$this->url,'',false),$depr).$depr.urlencode('[PAGE]').'.html';
}

注:URL_PATHINFO_DEPR这个配置是模块方法中的话分隔符,默认是:/
好了,到此为止已经更改完成,下面是使用示例:
比如我有一个链接是这样的:Post/index/page/2,我想让它变成page/2怎么弄呢,首先先开启路由功能:

'URL_ROUTER_ON'   => true

然后再配置路由规则:

'URL_ROUTE_RULES' => array(
    '/^page\/([\d]+)$/' => 'Post/index?page=:1'
);

分页的时候这样写:

$Page = new \Think\Page($count, 6);
$Page->url = 'page';
$show = $Page->show();

接下来输出到网页试试看看是不是改变了?

分享到:
标签:TP3.2,分页,规则路由,
^_^ 亲爱的客官,如果您觉得本文对您有好处,请移动你的鼠标点点下面的广告或上面的或右上角的,非常感谢~ ^_^
  1. 这样的话是不是封装的太死了,如果我几个地方都是翻页的话。url就不能写page,不然转跳到第一个正则的路由了,对么