## 分页查询 数据库查询时可以直接用 Db 的 paginate 方法 ``` // 查询状态为1的用户数据 并且每页显示10条数据 $users = Db::name('user')->where('user_status',1)->paginate(10); // 把分页数据赋值给模板变量users $this->assign('users', $users); $this->assign('page', $users->render());//单独提取分页出来 // 渲染模板输出 return $this->fetch(); ``` 也可以使用模型的分页查询代码: ``` // 查询状态为1的用户数据 并且每页显示10条数据 $users = UserModel::where('user_status',1)->paginate(10); // 把分页数据赋值给模板变量users $this->assign('users', $users); $this->assign('page', $users->render());//单独提取分页出来 // 渲染模板输出 return $this->fetch(); ``` 在模板中输出分页数据 ``` <div> <foreach name="users" item="vo"> <div>{$vo.user_nickname}</div> </foreach> <div class="pagination">{$users->render()}</div> 或 <div class="pagination">{$page|default=''}</div> ``` 生成的分页 html 结构就是标准 bootstrap 分页结构 ``` <ul class="pagination"> <li class="disabled"><span>«</span></li> <li class="active"><span>1</span></li> <li><a href="/portal/admin_article/index.html?page=2">2</a></li> <li><a href="/portal/admin_article/index.html?page=2">»</a></li> </ul> ``` ## 保持分页条件 ``` $params=$this->request->param(); // 查询状态为1的用户数据 并且每页显示10条数据 $users = Db::name('user')->where('user_email','like',"{$params['email']}%")->paginate(10); // 把分页数据赋值给模板变量users $this->assign('users', $users); // 在 render 前,使用appends方法保持分页条件 $users->appends($params); $this->assign('page', $users->render());//单独提取分页出来 // 渲染模板输出 return $this->fetch(); ```