本文實例講述了thinkPHP5分頁功能實現方法。分享給大家供大家參考,具體如下:
其實分頁自身的內容也不是很多。不過牽扯到樣式的問題感覺挺煩。于是找到了分頁類看了一下。把大體的結構說一下。如果有需要修改頁面樣式的可以自行修改樣式。最好提前備份,防止意外。
首先是分頁的調用,tp5的調用相對非常容易
$mod = new \app\index\model\Blogmsg();
$mo = $mod->paginate(1,14);
$this->assign('list', $mo);
// 渲染模板輸出
return $this->fetch('list');
//模板方面
div>
ul>
{volist name='list' id='user'}
li> {$user.nickname}/li>
{/volist}
/ul>
/div>
{$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()
則是管中間的。看代碼基本是也能看出來大體意思。修改分頁基本從這些地方著手就可以了。
更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
您可能感興趣的文章:- ThinkPHP5.1+Ajax實現的無刷新分頁功能示例
- thinkphp5框架前后端分離項目實現分頁功能的方法分析
- thinkphp5+layui實現的分頁樣式示例
- ThinkPHP5&5.1框架關聯模型分頁操作示例
- thinkPHP5框架分頁樣式類完整示例
- thinkPHP5框架實現基于ajax的分頁功能示例
- ThinkPHP5分頁paginate代碼實例解析