ThinkPHP3.2.3使用分页
在这里我有先把page的设置做成了一个函数getpage,将这个方法放到Application\Common\Common\function.php(注意function不是类)中方便其他地方调用,代码如下:
1 <?php 2 /** 3 * TODO 基础分页的相同代码封装,使前台的代码更少 4 * @param $count 要分页的总记录数 5 * @param int $pagesize 每页查询条数 6 * @return \Think\Page 7 */ 8 function getpage($count, $pagesize = 10) { 9 $p = new Think\Page($count, $pagesize); 10 $p->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录
第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>'); 11 $p->setConfig('prev', '上一页'); 12 $p->setConfig('next', '下一页'); 13 $p->setConfig('last', '末页'); 14 $p->setConfig('first', '首页'); 15 $p->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%'); 16 $p->lastSuffix = false;//最后一页不显示为总页数 17 return $p; 18 } 19 ?>
控制器中使用的代码如下:
1 public function showAllUsers() { 2 $m = M('User'); 3 $where = "id>10"; 4 $count = $m->where($where)->count(); 5 $p = getpage($count,1); 6 $list = $m->field(true)->where($where)->order('id')->limit($p->firstRow, $p->listRows)->select(); 7 $this->assign('select', $list); // 赋值数据集 8 $this->assign('page', $p->show()); // 赋值分页输出 9 $this->display(); 10 }
接下来在View中的使用 自行处理
其中设置分页的样式mypage.css,如下:
1 .pages a,.pages span { 2 display:inline-block; 3 padding:2px 5px; 4 margin:0 1px; 5 border:1px solid #f0f0f0; 6 -webkit-border-radius:3px; 7 -moz-border-radius:3px; 8 border-radius:3px; 9 } 10 .pages a,.pages li { 11 display:inline-block; 12 list-style: none; 13 text-decoration:none; color:#58A0D3; 14 } 15 .pages a.first,.pages a.prev,.pages a.next,.pages a.end{ 16 margin:0; 17 } 18 .pages a:hover{ 19 border-color:#50A8E6; 20 } 21 .pages span.current{ 22 background:#50A8E6; 23 color:#FFF; 24 font-weight:700; 25 border-color:#50A8E6; 26 }
这样就可以了。