一、首先需要在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>