tp5分页

别来无恙 提交于 2020-01-11 16:57:59

前言:后台列表的分页 与 接口列表的分页

后台列表的分页

知识点:tp5手册可以先查阅一下limit/page/paginate;paginate比较难理解的地方应该是它怎么把前端的页面也写进去了(这个页面的代码我不清楚咋办),我们只需要传个render()后的变量就行了;如果使用paginate别忘记了分页参数配置,这是一个步骤不要忘记了

页面部分;两种方式直接输出与单独赋值模板变量,两者没有差别
 <!--分页-->
    <div class="row">
        <div class="col-xs-12">
            <div class="col-sm-6 col-md-6" style="padding-left:0px;">

            </div>
            <div class=" col-sm-6 col-md-6 text-right" style="padding-right:0px;">
                <div class="dataTables_paginate paging_bootstrap">
                	//这里是第二种,后天赋值了page变量
                    {$page}
                </div>
            </div>
        </div>
    </div>
    <!--分页结束-->
后台 控制器
 $pageData = $this->model->where($where)
            ->paginate($this->_pagesize,false,['query' => request()->param()]);

接口列表的分页

主要需要返回 所有记录条数,一共分了多少页,当前页数,当前分页大小(每页展示几条数据),列表数据

public function getListInfo($where,$page,$pages_size){
        //分页参数
        if(empty($page)) $page = $this->_page;
        if(empty($pages_size)) $pages_size = $this->_pagesize;
		
		//查询数据
        $info =  $this->db()->where($where);

        $newInfo = clone $info;
        $count = $newInfo->count();
        $all_page = ceil($count/$pages_size);
        //精准返回所需字段
        $field = 'b.*,r.room_num,bu.building_name,bu.org_id,r.floor,bt.name bed_type_name,r.room_type';
        $list = $info->limit(($page-1)*$pages_size,$pages_size)->field($field)->order("id desc")->select();
        $list = $this->asArray($list);
        
        $confDictionary = new ConfDictionary();
		//处理需要 转换的字段
        foreach ($list as $k=> &$v){
            $v['room_type_name'] = $confDictionary->getNameById($v['room_type']);
        }

        //返回数据,总记录数,总页数,当前页,当前分页大小,列表数据
        $return = ['all'=>$count,'all_page'=>$all_page,'page'=>$page,'limit'=>$pages_size,'list'=>$list];
        return $return;
    }
小tips:

目前无

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!