本文目錄:
- 首先知道最原始的分頁如何實現。
- TP分頁類相當簡單。
- 模板中常用
首先知道最原始的分頁如何實現。
頁面傳進來一個p表示當前請求的頁碼,控制器接受到參數,組裝到sql中,並且配置page的配置信息,例如,每頁顯示多少數據,然后利用sql先查出總個數,然后利用分頁關系組裝sql,查出來之后的得到對應的數據,接下來開始解析分頁按鈕等信息的渲染。經過漫長復雜的處理才可以完成一個分頁的使用。
TP分頁類相當簡單。
其中將獲取當前頁碼自動化獲取,根據model自動組裝sql,結合render渲染出需要的分頁按鈕。相當簡單。
具體說下,
1 public function getlist() 2 { 3 $cartoon_where = ['block_sta' => 3, 'is_on_show' => 1]; 4 $orderBy = ['hot_num' => 'desc']; 5 $hot_cartoons = Model('cartoon') 6 ->field('id,title,thumb,author,last_chapt,last_chapt_num,tags,serial_sta') 7 ->where($cartoon_where) 8 ->order($orderBy) 9 ->paginate(5, false, ['var_page'=>'p']); 10 return $hot_cartoons; 11 }
只需要在model中使用一個 ,配置url中表示頁碼的字符,這里用p,其實默認的是 'page' .如果使用了page也可以任何東西都不用配置
paginate(5, false, ['var_page'=>'p']);
所有獲取頁碼,組裝sql,查詢總數等都是 類完成,但要注意調用的是model,而且返回的是一個bootstrap對象,但是這個data數據可以直接使用。
簡直不能更爽~
例子詳情參見:
控制器:
app\mobile\controller\rank ->book_hot() 和 ->ajax_ranking_info_book()
注意:
這個分頁參數必須是get方式傳遞過來的。post的方式不支持
模板中常用
{if($books->isEmpty())} //是否為空的判斷 {$books->currentPage()} //當前頁碼的獲取 {$books->lastPage()} //最后一頁頁碼的獲取