【ThinkPHP学习】Page分页类学习

RT.

续上面的文章读取功能实现,接下来实现文章列表的分页功能。TP已经实现了一个分页类Page.class.php,3.1版本之前的TP Page类位于ThinkPHP扩展文件夹下,目录地址为ThinkPHP/Library/Org/Util/Page.class.php,引入使用,利用TP的import方法,import('ORG.Util.Page')。但是3.2版本之后的ThinkPHP已经将Page.class.php文件移动到了ThinkPHP/Library/Org/Think/Page.class.php,同样,声明使用Page类的方法也变了,变成$Page = new \Think\Page($count, ‘分页条数’);

OK。接下来学习Page类的使用,以文章Article为例子,Article视图中有数据项id,title,title_alias三个数据项,分别存储的是文章ID,文章标题,文章简介。

1:实例化数据对象

$article = M("Article");

2:查询总记录数

$count = $article->count();//直接读取数据表中条项总数
//或者有查询条件
$count = $article->where(查询条件)->count();//查询满足查询条件的条目数

3:实例化分页类

分页类在初始化的时候传入两个参数,一个是显示条数的总数,一个是每次取出的条数。

$Page  = new \Think\Page($count, 10);

4:按照限定的条数,从数据库中读取相应数量的条数

如下,filed()指定从数据库中取出id,title,title_alias三个数据项,并且通过limit()函数限制和记录取出的条目,取完后将其赋给页面:

$list = $article->field('id,title,title_alias')->order('id')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);

5:通过show()方法解析$page内容并附值给模板变量,供模板调用:

$show  = $Page->show();
$this->assign('page',$show);

6:通过$this->display()调用模板显示;(display方法用于模板文件的渲染输出,show方法则用于模板内容渲染输出,关于两者的区别:http://doc.thinkphp.cn/manual/template_output.html)

7:在模板中,通过标签显示内容


   {$list["id"]}{$list["title"]}
   {$list["title_alias"]}
    
{$page}
$list数组中存了对应页码中页面所需要展示的内容,其中包括id,title,title_alias。这三个内容。$page变量中存储了换页的数组以及当前的页面数,两者结合就完成了翻页的功能。


你可能感兴趣的:(ThinkPHP)