這篇文章主要講解了“ThinkPHP3.2中如何設(shè)置當(dāng)前頁分頁”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ThinkPHP3.2中如何設(shè)置當(dāng)前頁分頁”吧!
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、正鑲白ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的正鑲白網(wǎng)站制作公司
首先,需要在控制器中定義每頁顯示的數(shù)據(jù)量(默認(rèn)是 20 條),以及獲取當(dāng)前頁碼??梢酝ㄟ^ I('p',1)
來獲取當(dāng)前頁碼,如果沒有傳遞參數(shù),則默認(rèn)為第 1 頁。
public function getList(){
$page_size = 10; // 每頁顯示10條數(shù)據(jù)
$p = I('p',1); // 獲取當(dāng)前頁碼
//TODO: ...
}
然后,需要計算出每頁數(shù)據(jù)的起始位置,以便在數(shù)據(jù)庫中進(jìn)行分頁查詢。假設(shè)查詢表 user
中的數(shù)據(jù),可以使用 ThinkPHP 提供的 limit
方法進(jìn)行分頁。
public function getList(){
$page_size = 10; // 每頁顯示10條數(shù)據(jù)
$p = I('p',1); // 獲取當(dāng)前頁碼
$user = M('User');
$offset = ($p-1)*$page_size; // 計算當(dāng)前頁數(shù)據(jù)的起始位置
$list = $user->limit($offset.','.$page_size)->select();// 按分頁查找數(shù)據(jù)
}
在以上代碼中,計算數(shù)據(jù)起始位置時使用 $offset = ($p-1)*$page_size;
,然后使用 limit()
方法進(jìn)行分頁查詢。
最后,需要在視圖文件中渲染分頁代碼,讓用戶可以方便地進(jìn)行翻頁??梢允褂?ThinkPHP 提供的 page()
方法生成 Bootstrap 樣式的分頁代碼。
public function getList(){
$page_size = 10; // 每頁顯示10條數(shù)據(jù)
$p = I('p',1); // 獲取當(dāng)前頁碼
$user = M('User');
$offset = ($p-1)*$page_size; // 計算當(dāng)前頁數(shù)據(jù)的起始位置
$list = $user->limit($offset.','.$page_size)->select();// 按分頁查找數(shù)據(jù)
$count = $user->count(); // 獲取數(shù)據(jù)總數(shù)
$Page = new \Think\Page($count,$page_size); // 實例化分頁類
$show = $Page->show(); // 分頁顯示輸出
$this->assign('list',$list);
$this->assign('page',$show); // 分配分頁代碼到視圖
$this->display();
}
以上代碼中,使用 $count = $user->count();
獲取數(shù)據(jù)總數(shù),然后使用 new \Think\Page($count,$page_size);
實例化分頁類,傳入總數(shù)和每頁數(shù)據(jù)量,最后使用 $Page->show();
來生成分頁展示字符串。然后將分頁字符串傳遞給視圖文件,使用 $this->assign('page',$show);
分配變量即可。
感謝各位的閱讀,以上就是“ThinkPHP3.2中如何設(shè)置當(dāng)前頁分頁”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ThinkPHP3.2中如何設(shè)置當(dāng)前頁分頁這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!