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