thinkPHP5分頁(yè)功能實(shí)現(xiàn)方法分析
本文實(shí)例講述了thinkPHP5分頁(yè)功能實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
其實(shí)分頁(yè)自身的內(nèi)容也不是很多。不過(guò)牽扯到樣式的問(wèn)題感覺(jué)挺煩。于是找到了分頁(yè)類看了一下。把大體的結(jié)構(gòu)說(shuō)一下。如果有需要修改頁(yè)面樣式的可以自行修改樣式。最好提前備份,防止意外。
首先是分頁(yè)的調(diào)用,tp5的調(diào)用相對(duì)非常容易
$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()}
函數(shù)的第一個(gè)參數(shù)是每一頁(yè)顯示幾個(gè),第二個(gè)參數(shù)是總共顯示多少頁(yè)。
(本來(lái)有10頁(yè),你只寫5頁(yè),那么6-10頁(yè)是不會(huì)顯示的,但是地址欄該參數(shù)還是可以跳轉(zhuǎn)過(guò)去獲取對(duì)應(yīng)的內(nèi)容…)
默認(rèn)的是這樣的效果。不過(guò)這是在bootstrap模板下才有的效果。專門根據(jù)bootstrap的特點(diǎn)做的命名。
也就是說(shuō),在其他的模板下,只是單純的數(shù)字。
分頁(yè)的文件的位置在thinkphp\library\think\paginator里。
driver里有一個(gè)分頁(yè)樣式的原版。直接改不利于后期維護(hù)。而且tp5也給你一個(gè)非常方便的修改方法。文件夾內(nèi)源文件復(fù)制粘貼重新命名。然后改一句話class Bootstrap extends Paginator中的Bootstrap改成文件的名字。再去config.php里找到分頁(yè)相關(guān)的配置。
'type' => 'bootstrap'
,改成你的文件名字。就可以直接調(diào)用了。
我把幾個(gè)牽扯到樣式的函數(shù)名稱列出來(lái),簡(jiǎn)單的說(shuō)一下存在的意義。
render()
渲染分頁(yè),大白話就是這個(gè)分頁(yè)類的主體。
return sprintf( '<ul class="pagination">%s %s %s</ul>', $this->getPreviousButton(), $this->getLinks(), $this->getNextButton() );
這里就牽扯到css的樣式,可以根據(jù)自己的需要替換。
頁(yè)碼自身沒(méi)有首頁(yè)和尾頁(yè)單項(xiàng)。(但是函數(shù)為你提供了尾頁(yè)的值)
可以自己去做一個(gè)填寫。復(fù)制getNextButton()
進(jìn)行相關(guān)的修改就可以了。
在getNextButton()
函數(shù)里會(huì)看見(jiàn)另外兩個(gè)函數(shù)
getAvailablePageWrapper(url,page)
和getDisabledTextWrapper($text)
。
剛剛的渲染函數(shù)是可以理解為箱體,這兩個(gè)函數(shù)可以理解為按鈕了。想改樣式在這里該就行了。能做到這里的都不會(huì)有太大的問(wèn)題。
getLinks()
則是管中間的??创a基本是也能看出來(lái)大體意思。修改分頁(yè)基本從這些地方著手就可以了。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP用swoole+websocket和redis實(shí)現(xiàn)web一對(duì)一聊天
這篇文章主要介紹了PHP用swoole+websocket和redis實(shí)現(xiàn)web一對(duì)一聊天,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Zend Framework框架之Zend_Mail實(shí)現(xiàn)發(fā)送Email郵件驗(yàn)證功能及解決標(biāo)題亂碼的方法
這篇文章主要介紹了Zend Framework框架之Zend_Mail實(shí)現(xiàn)發(fā)送Email郵件驗(yàn)證功能及解決標(biāo)題亂碼的方法,詳細(xì)分析了Zend_Mail組件實(shí)現(xiàn)郵件發(fā)送的具體步驟,并給出了標(biāo)題亂碼的解決方法,需要的朋友可以參考下2016-03-03PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法步驟
php代碼在調(diào)試時(shí),經(jīng)常是print_r或者var_dump來(lái)斷點(diǎn),但是當(dāng)項(xiàng)目較為復(fù)雜的情況下,這么做效率就非常低下了,斷點(diǎn)調(diào)試就非常好的解決了這個(gè)問(wèn)題,這篇文章主要介紹了PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法步驟,感興趣的小伙伴們可以參考一下2018-05-05php微信公眾號(hào)開(kāi)發(fā)之答題連闖三關(guān)
這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開(kāi)發(fā)之答題連闖三關(guān),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10laravel框架實(shí)現(xiàn)去掉URL中index.php的方法
今天小編就為大家分享一篇laravel框架實(shí)現(xiàn)去掉URL中index.php的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10php+highchats生成動(dòng)態(tài)統(tǒng)計(jì)圖
這篇文章主要介紹了php+highchats生成動(dòng)態(tài)統(tǒng)計(jì)圖,需要的朋友可以參考下2014-05-05