先在CommonComon里建一个function.php公共方法,然后在里面新建一个getpage方法,代码如下:
<?php /** * TODO 基础分页的相同代码封装,使前台的代码更少 * @param $m 模型,引用传递 * @param $where 查询条件 * @param int $pagesize 每页查询条数 * @return ThinkPage */ function getpage(&$m,$where,$pagesize=10){ $m1=clone $m;//浅复制一个模型 $count = $m->where($where)->count();//连惯操作后会对join等操作进行重置 $m=$m1;//为保持在为定的连惯操作,浅复制一个模型 $p=new ThinkPage($count,$pagesize); $p->lastSuffix=false; $p->setConfig('header','<li class="rows">共<b>%TOTAL_ROW%</b>条记录 每页<b>%LIST_ROW%</b>条 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>'); $p->setConfig('prev','上一页'); $p->setConfig('next','下一页'); $p->setConfig('last','末页'); $p->setConfig('first','首页'); $p->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%'); $p->parameter=I('get.'); $m->limit($p->firstRow,$p->listRows); return $p; } ?>
然后在控制器里调用此方法:
public function consumerList(){ $m=M('consumer'); $p=getpage($m,$where,20); $this->data=$m->field(true)->where($where)->order('id desc')->select(); $this->page=$p->show(); $this->display(); }
再然后给分页添加样式:
/*分页样式*/ .rows{ display:inline; list-style-type:none; } .num{ padding-left:5px; } .current{ margin-left: 3px; padding:5px; color:white; background: gray }
最后在需要的位置直接调用分配过来的分页信息就行了,如{$page},注意:不用在它外层再添加div或其他标签了!