Thinkphp系统提供有分页功能,使用类 \Think\Page;
普通分页
$article = M("article");
$count = $article->count(); // 查询满足要求的总记录数
$page = new \Think\Page($count,25); // 实例化分页类 传入总记录数和每页显示的记录数(25)
$show = $page->show(); // 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $article->limit($page->firstRow.','.$page->listRows)->select();
$this->assign("show",$show);
$this->assign("list",$list);
$this->display();
注意: 实例化分页类 \Think\Page();
搜索分页
1.使用GET表单提交搜索
$article = M("article");
$title = urlencode($_GET['title']);
$map['title'] = array('LIKE',"%{$title}%");
$count = $article->where($map)->count();
$page = new \Think\Page($count,25);
$show = $page->show();
$list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select();
$this->assign("show",$show);
$this->assign("list",$list);
$this->display();
2.使用POST提交搜索表单
$article = M("article");
$title = urlencode($_REQUEST['title']);
$args['title'] = $title;
$map['title'] = array('LIKE',"%{$title}%");
$count = $article->where($map)->count();
$page = new \Think\Page($count,25,$args);
$show = $page->show();
$list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select();
$this->assign("show",$show);
$this->assign("list",$list);
$this->display();
分页样式
我们可以对输出的分页样式进行定制,分页类Page提供了一个setConfig方法来修改默认的一些设置。例如:
$article = M("article");
$title = urlencode($_REQUEST['title']);
$args['title'] = $title;
$map['title'] = array('LIKE',"%{$title}%");
$count = $article->where($map)->count();
$page = new \Think\Page($count,25,$args);
$page->setConfig("first","首页");
$page->setConfig("prev","上一页");
$page->setConfig("next","下一页");
$page->setConfig("last","末页"); //注意last不显示,此项是个bug
$page->setConfig("theme","%UP_PAGE% %LINK_PAGE% %DOWN_PAGE%"); //用theme自定义显示哪些内容
$show = $page->show();
$list = $article->where($map)->limit($page->firstRow.','.$page->listRows)->select();
$this->assign("show",$show);
$this->assign("list",$list);
$this->display();
setConfig方法支持的属性包括:
header:头部描述信息,默认值 “共 %TOTAL_ROW% 条记录”
prev:上一页描述信息,默认值 “<<”
next:下一页描述信息,默认值 “>>”
first:第一页描述信息,默认值 “1...”
last:最后一页描述信息,默认值 “...%TOTAL_PAGE%”
theme :分页主题描述信息,包括了上面所有元素的组合 ,设置该属性可以改变分页的各个单元的显示位置,默认值是 "%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%"
其中,显示位置的对应的关系为:
| 位置 | 说明 |
|---|---|
| %FIRST% | 表示第一页的链接显示 |
| %UP_PAGE% | 表示上一页的链接显示 |
| %LINK_PAGE% | 表示分页的链接显示 |
| %DOWN_PAGE% | 表示下一页的链接显示 |
| %END% | 表示最后一页的链接显示 |
除了改变显示信息外,你还可以使用样式来定义分页的显示效果。这些样式class包括:first(第一页)、prev(上一页)、next(下一页)、end(最后一页)、num(其他页的数字)、current(当前页)。
