ThinkPHP分页类使用详解


Posted in PHP onMarch 05, 2014

一、首先需要在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>
PHP 相关文章推荐
PHP调用三种数据库的方法(2)
Oct 09 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
PHP实现事件机制的方法
Jul 10 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP实现的装箱算法示例
Jun 23 PHP
php统计文章排行示例
Mar 04 #PHP
php不使用插件导出excel的简单方法
Mar 04 #PHP
php无限遍历文件夹示例分享
Mar 04 #PHP
关于js和php对url编码的处理方法
Mar 04 #PHP
php面向对象中的魔术方法中文说明
Mar 04 #PHP
thinkphp实现多语言功能(语言包)
Mar 04 #PHP
thinkphp实现图片上传功能分享
Mar 04 #PHP
You might like
在PHP中操作Excel实例代码
2010/04/29 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
Node 代理访问的实现
2019/09/19 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python 生成图形验证码的方法示例
2018/11/11 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python实现三维拟合的方法
2018/12/29 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
C#面试问题
2016/07/29 面试题
个人作风剖析材料
2014/02/02 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
Redis数据同步之redis shake的实现方法
2022/04/21 Redis
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers