thinkPHP5-后端之分页

这是用户列表分页方法,在控制器里写

        #获取参数
        $data = self::$config;

        #判断是否有输入当前页和每页条数,否则默认值
        $curr = isset($data['curr'])?$data['curr']:1;
        $limits = isset($data['limits'])?$data['limits']:10;

        #判断是否有关键字、职位、启用状态的筛选或搜索
        $keyword = isset($data['keyword'])?$data['keyword']:'';
        $roleid = isset($data['roleid'])?$data['roleid']:'';
        $status = isset($data['status'])?$data['status']:'';

        #搜索条件
        $where = 'del=1';
        $where .= $keyword?' and CONCAT(username,realname) like "%'.$keyword.'%"':'';#账号和真实姓名搜索
        $where .= $roleid?' and roleid='.$roleid:'';  #职位筛选
        $where .= $status?' and status='.$status:'';  #启用状态筛选

        #分页
        $total = Db::name('member')->where($where)->count();#获取总条数
        $pages = ceil($total/$limits);#页数必须是整数
        if($curr > $pages){
            $curr = $pages;
        }

        #返回列表字段
        $field = 'id,username,realname,roleid,departmentid,status,email,phone';
        $list  = Db::name('member')->field($field)->where($where)->page($curr,$limits)->select();

        #结果
        $result = [
            'list'     => $list,    #每页内容
            'total'    => $total,   #总条数
            'curr'     => $curr,    #当前页
            'limits'   => $limits,  #每页显示数量
            'pages'    => $pages    #总页数
        ];
        return ['code'=>200,'msg'=>config('msg.200'),'data'=>$result];

最后,返回的数组如“结果”所示

知识点补充:

1.intval()函数,用于获取变量的整数值,如当前页和每页条数,应该取整数值

2.trim()函数移除字符串两边的空白字符和其他预定义的字符

     ltrim()函数,移除字符串左边的空白字符和其他预定义的字符

    rtrim()函数,移除字符串右边的空白字符和其他预定义的字符

3.ceil()函数向上舍入最近的整数,如2.1,2.9,最终输出得 3

4.floor()函数向下舍入最近的证书,如2.1,2.9,最终输出得 2

5.round()函数对浮点数进行四舍五入

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值