當網站的留言內容越來越多的時候,分頁功能的應用就應運而生了,本文我們就來重點講解下ThinkPHP框架自帶的分頁類的調用
一、首先需要在MsgManage控制器中加入分頁方法 知識點: 1、count函數的試用 2、Page類實例化操作及相關參數了解 3、limit函數了用 4、show函數了解 編輯文件admin/Lib/Action/MsgManageAction.class.php 代碼如下: 代碼如下: class MsgManageAction extends CommonAction { public function index(){ import('ORG.Util.Page'); //import調用的是message/ThinkPHP框架目錄下的擴展包Extend/Library/ORG/Util/中的Page.class.php類文件 $count = M('board')->count(); //調用board庫,取出所有數據條數 $page = new Page($count ,10); //實例化Page類,其中第一個參數為顯示條數的總數,每次取出十條,也就是下面$page->listRows的值 $limit = $page->firstRow . ',' . $page->listRows; //$page->firstRow為查找的起始條數,默認為0,如果$page->listRows為10,那麼第2頁的$page->firstRow就為10,以此類推 $board = M('board')->order('time DESC')->limit($limit)->select(); //注意,這裡較之前的版本添加了->limit($limit) $this->board = $board; $this->page = $page->show(); //將$page->show()通過show方法解析$page內容顯示並賦值給模板變量,供模板調用 $this->display(); } Public function delete(){ $id = I('id','','intval'); if(M('board')->delete($id)){ $this->success('刪除成功',U('index')); }else{ $this->error('刪除失敗'); } } } show方法是3.1版本才有的一個新功能 ThinkPHP中頁面輸出的過程是讀取模板文件,然後進行模板解析(也支持調用第三方模板引擎解析),但是有一些情況,我們並沒有定義模板文件,或者把模板文件保存在數據庫裡面,那麼這個時候進行頁面輸出的時候,我們是無法進行模板文件讀取的,3.1版本則針對這樣的情況增加了內容解析輸出的功能。 內置的模板引擎也進行了完善,如果傳入的模板文件不存在的話,則會認為是傳入的模板解析內容,因此,3.1的View類和Action類也做了一些改進。 display方法用於模板文件渲染輸出,show方法則用於模板內容渲染輸出,並且show方法仍然支持內容解析功能 具體內容可參考:ThinkPHP3.1新特性 內容解析輸出 二、在模板文件中加入分頁模塊 知識點: 1、td單元格合並 2、$page變量調用顯示 編輯文件:admin/Tpl/MsgManage/index.html,加入一段tr用來顯示分頁相關,代碼如下: 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Message Board BackGround</title> </head> <body> <table class="table" border="1"> <tr> <th>ID</th> <th>發布者</th> <th>內容</th> <th>發布時間</th> <th>操作</th> </tr> <foreach name='board' item='b'> <tr> <td>{$b.id}</td> <td>{$b.username}</td> <td>{$b.content}</td> <td>{$b.time|date='y-m-d H:i',###}</td> <td><a href="{:U('admin.php/MsgManage/delete',array('id' => $b['id'])),''}">刪除</a></td> </tr> </foreach> //新增tr代碼短 <tr> <td colspan='5' align='center'> //將5個單元格合並,並且居中顯示 {$page} //顯示控制器中$this->page內容 </td> </tr> </table> </body> </html>