thinkphp 是一個(gè)基于 php 的開(kāi)源框架,被廣泛應(yīng)用于 web 開(kāi)發(fā)中。在實(shí)際開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)用到分頁(yè)功能。本文將介紹如何在 thinkphp 中使用分頁(yè)功能。
思路與步驟:
ThinkPHP 默認(rèn)使用的是 bootstrap 樣式,分頁(yè)功能通過(guò) TP 中的 paginate 方法實(shí)現(xiàn)。paginate 方法繼承分頁(yè)類(lèi) TPpaginate,并返回分頁(yè)字符串,分頁(yè)字符串包括分頁(yè)導(dǎo)航、分頁(yè)結(jié)果等信息。以下是分頁(yè)的具體實(shí)現(xiàn)步驟:
步驟一:安裝 TP 擴(kuò)展類(lèi)(TP 自帶分頁(yè)類(lèi))。
composer require topthink/think-pagination
步驟二:在控制器中設(shè)置分頁(yè)參數(shù)。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
$page = input('page') ?: 1; //獲取頁(yè)碼數(shù),默認(rèn)為第一頁(yè) $limit = 10; //每頁(yè)顯示記錄數(shù) $start = ($page - 1) * $limit; //起始記錄索引,例如:第一頁(yè) $start=0,第二頁(yè) $start=10... $list = Db::name('user')->limit($start, $limit)->select(); $count = Db::name('user')->count(); // 獲取總記錄數(shù) $this->assign([ 'list' => $list, 'count' => $count, 'limit' => $limit ]);
步驟三:在視圖文件中顯示分頁(yè)信息。
通過(guò) paginate() 方法獲取分頁(yè)信息,返回的是一個(gè)字符串,表現(xiàn)形式是一個(gè)帶有上一頁(yè)、下一頁(yè)等按鈕的分頁(yè)器。我們?cè)谝晥D文件中將返回的字串直接打印出來(lái)即可顯示分頁(yè)內(nèi)容。
// 分頁(yè) echo $list->render();
具體代碼及實(shí)例:
控制器代碼示例:
public function index() { $page = input('page') ?: 1; //獲取頁(yè)碼數(shù),默認(rèn)為第一頁(yè) $limit = 10; //每頁(yè)顯示記錄數(shù) $start = ($page - 1) * $limit; //起始記錄索引,例如:第一頁(yè) $start=0,第二頁(yè) $start=10... $list = Db::name('user')->limit($start, $limit)->select(); $count = Db::name('user')->count(); // 獲取總記錄數(shù) $this->assign([ 'list' => $list, 'count' => $count, 'limit' => $limit ]); return $this->fetch(); }
視圖代碼示例:
// 渲染表格// 分頁(yè) echo $list->render();
以上代碼實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的分頁(yè)功能,通過(guò) TP 的 paginate 方法可以很方便地實(shí)現(xiàn)分頁(yè)功能。相信在您的實(shí)際開(kāi)發(fā)中也能夠運(yùn)用得游刃有余。
總結(jié):
在 TP 中實(shí)現(xiàn)分頁(yè)功能需要多個(gè)步驟,并需要結(jié)合實(shí)際開(kāi)發(fā)需要不斷調(diào)整。但總體來(lái)說(shuō),調(diào)用 TP 自帶的 paginate 方法相對(duì)簡(jiǎn)單,且在性能和可讀性方面都具有可觀的優(yōu)勢(shì),在您的實(shí)際開(kāi)發(fā)中也不妨嘗試使用後認(rèn)證其優(yōu)異性。