1. 程式人生 > >thinkphp3.2.1分頁路由

thinkphp3.2.1分頁路由

最近在做一個專案,設定路由後,一切訪問正常,但是分頁忽然不能用了,上網查了很久,終於弄出來了,下面為方法

初始路徑:

http://www.XXXX.com/index.php/Home/Index/morexuxiao.html

設定路由和隱藏index.php後路徑如下

http://www.XXXX.com/morexuxiao.html

但是分頁出現如下故障

http://XXXX.com/Index-morewuxiao-p-2.html文章直接回到了首頁無法訪問

解決方法:修改分頁類。路徑Library\Think\Page.class.php分類以支援路由
1、新增分頁適配路由
(1)有引數

'/^Index\/morewuxiao\/(\d+)-(\d+)$/'  => 'Index/morewuxiao?id=:1&p=:2',

(2)無引數
'/^Index\/morewuxiao\/(\d+)$/'  => 'Index/morewuxiao?&p=:1',

2、修改分頁類Library\Think\Page.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);
        }

3、控制器中使用方法

$Page = new  \Think\Page($count, 12);// 
$page_tpl = urlencode('[PAGE]'); 
$Page->url   =   U("articlelist/{$page_tpl}");
//$Page->url   =   U("articlelist/{$this->typeid}-{$page_tpl}");//帶引數形式

參考網址:http://www.thinkphp.cn/topic/22114.html