thinkphp分页显示

先在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或其他标签了!

原文地址:https://www.cnblogs.com/hltswd/p/4917691.html