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 编写的日历
Oct 09 PHP
实用函数5
Nov 08 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
zend framework重定向方法小结
May 28 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
PHP中include和require的区别实例分析
May 07 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
php插入mysql数据返回id的方法
May 31 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
第四节--构造函数和析构函数
2006/11/16 PHP
介绍php设计模式中的工厂模式
2008/06/12 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
新手入门常用代码集锦
2007/01/11 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
商超业务员岗位职责
2014/03/12 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
高三英语复习计划
2015/01/19 职场文书
银行催款通知书
2015/04/17 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库