这是用户列表分页方法,在控制器里写
#获取参数
$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()函数,对浮点数进行四舍五入