1. 程式人生 > >關於thinkphp中自帶的分頁類中setConfig("last","尾頁")無效的解決方法

關於thinkphp中自帶的分頁類中setConfig("last","尾頁")無效的解決方法

問題
在使用thinkphp自帶分頁類時,在設定尾頁顯示的最後一頁時,用setConfig(“last”,”尾頁”)來設定樣式,發現無效。

分析
在分頁類(/ThinkPHP/Library/Think/Page.class.php)裡面有一個共有屬性:

public $lastSuffix = true; // 最後一頁是否顯示總頁數

在show方法的實現中:

$this->lastSuffix && $this->config['last'] = $this->totalPages;

所以如果$lastSuffix = true的話,setConfig(‘last’,’尾頁’)的設定會被重置,也就是說,我們的setConfig(“last”,”尾頁”)被覆蓋了。

解決方法
1、我們可以在分頁類裡面直接修改屬性:

public $lastSuffix = false;

但是,我們不知道類中在其他地方是否有使用到$lastSuffix這個變數,因此,為了不影響整個類,我們可以修改setConfig()方法

2、修改setConfig():
修改前:

public function setConfig($name,$value) {
               if(isset($this->config[$name])) {
                 $this->config[$name] = $value
; } }

修改後:

public function setConfig($name,$value) {
        if(isset($this->config[$name])) {
            $this->config[$name] = $value;
            if($name == 'last'){
               $this->lastSuffix = false;
            }
        }
   }

好了,現在我們的setConfig(“last”,”尾頁”);已經能夠正常工作了。