ThinkPHP中的功能类-数据分页类
数据分页它是通过limit语法来实现。分页类的核心就是limit语法。
在ThinkPHP中系统封装好了一个分页类:Page.class.php
方法:
构造方法:
有三个参数,但是至少得传递第一个参数(总的记录数),一般还要指定第二个参数(每页显示的记录数,如果不指定则默认显示20个)
SetConfig方法:通过public类型的setConfig方法来设置私有属性config
Show方法:生成页码及页面页码上的URL连接
制作分页效果的步骤(七个步骤):
手册:
第一种方法在实际开发中比较常用:
第一步:查询出总的记录数;
第二步:实例化分页类,由于底层实现要求实例化的时候至少需要传递总数,所以需要在实例化的时候传递参数;
第三步:(可选步骤)定制显示分页提示的文字;
第四步:通过show方法输出分页页码的连接;
第五步:使用limit方法进行分页查询,注意其参数是page类的属性;
第六步:使用assign将查询的数据和分页连接数据传递给模版;
第七步:输出模版;
使用数据分页类实现职员管理的分页功能:
第一步:查询总的记录数
//实例化模型
$model = M('User');
//分页第一步,查询总的记录数
$count = $model -> count();
第二步:实例化分页类,传递参数
//分页第二步,实例化分页类,传递参数
$page = new \Think\page($count,1);
第三步:(可选步骤)定制分页按钮的提示文字
设置首页和末页的时候需要注意,如果总的页码数小于分页类中rollPage属性,则不会显示首页和末页的按钮,这个时候需要修改rollPage的值;由于分页类中lastSuffix属性,定义最后一页显示总页数,所以将其改为false:
//分页第三步,可选步骤,定义提示文字
$page -> rollpage = 5;
$page -> lastSuffix = false;
$page -> setConfig('prev','上一页');
$page -> setConfig('next','下一页');
$page -> setConfig('last','末页');
$page -> setConfig('first','首页');
第四步:通过show方法输出分页的URL链接
//分页第四步,使用show方法生成url
$show = $page -> show();
第五步:使用limit方法查询数据
//分页第五步,展示数据
$data = $model -> limit($page -> firstRow,$page -> listRows) -> select();
第六步:传递数据
//分页第六步,传递给模板
$this -> assign('data',$data);
$this -> assign('show',$show);
第七步:展示模版
//分页第七步,展示模板
$this -> display();
全部代码:
//showList方法
public function showList(){
//实例化模型
$model = M('User');
//分页第一步,查询总的记录数
$count = $model -> count();
//分页第二步,实例化分页类,传递参数
$page = new \Think\page($count,1);
//分页第三步,可选步骤,定义提示文字
$page -> rollpage = 5;
$page -> lastSuffix = false;
$page -> setConfig('prev','上一页');
$page -> setConfig('next','下一页');
$page -> setConfig('last','末页');
$page -> setConfig('first','首页');
//分页第四步,使用show方法生成url
$show = $page -> show();
//分页第五步,展示数据
$data = $model -> limit($page -> firstRow,$page -> listRows) -> select();
//分页第六步,传递给模板
$this -> assign('data',$data);
$this -> assign('show',$show);
//分页第七步,展示模板
$this -> display();
//展示数据
$data = M('User') -> select();
//传递给模板
$this -> assign('data',$data);
//展示模板
$this -> display();
}