thinkphp5實現分頁功能的方法介紹

來源:互聯網
上載者:User
其實分頁自身的內容也不是很多。不過牽扯到樣式的問題感覺挺煩。於是找到了分頁類看了一下。把大體的結構說一下。如果有需要修改頁面樣式的可以自行修改樣式。最好提前備份,防止意外。

首先是分頁的調用,tp5的調用相對非常容易

$mod = new \app\index\model\Blogmsg();$mo = $mod->paginate(1,14);$this->assign('list', $mo);// 渲染模板輸出return $this->fetch('list');//模板方面<p><ul>{volist name='list' id='user'}<li> {$user.nickname}</li>{/volist}</ul></p>{$list->render()}

函數的第一個參數是每一頁顯示幾個,第二個參數是總共顯示多少頁。

(本來有10頁,你唯寫5頁,那麼6-10頁是不會顯示的,但是地址欄該參數還是可以跳轉過去擷取對應的內容…)

預設的是這樣的效果。不過這是在bootstrap模板下才有的效果。專門根據bootstrap的特點做的命名。

也就是說,在其他的模板下,只是單純的數字。

分頁的檔案的位置在thinkphp\library\think\paginator裡。
driver裡有一個分頁樣式的原版。直接改不利於後期維護。而且tp5也給你一個非常方便的修改方法。檔案夾內源檔案複製粘貼重新命名。然後改一句話class Bootstrap extends Paginator中的Bootstrap改成檔案的名字。再去config.php裡找到分頁相關的配置。

'type' => 'bootstrap',改成你的檔案名稱字。就可以直接調用了。

我把幾個牽扯到樣式的函數名稱列出來,簡單的說一下存在的意義。

render()渲染分頁,大白話就是這個分頁類的主體。

return sprintf(  '<ul class="pagination">%s %s %s</ul>',  $this->getPreviousButton(),  $this->getLinks(),  $this->getNextButton());

這裡就牽扯到css的樣式,可以根據自己的需要替換。

頁碼自身沒有首頁和尾頁單項。(但是函數為你提供了尾頁的值)
可以自己去做一個填寫。複製getNextButton()進行相關的修改就可以了。

getNextButton()函數裡會看見另外兩個函數

getAvailablePageWrapper(url,page)getDisabledTextWrapper($text)

剛剛的渲染函數是可以理解為箱體,這兩個函數可以理解為按鈕了。想改樣式在這裡該就行了。能做到這裡的都不會有太大的問題。

getLinks()則是管中間的。看代碼基本是也能看出來大體意思。修改分頁基本從這些地方著手就可以了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.