按照惯例先描述问题:
需求分析:在后台管理文章的时候添加文章搜索,然后搜索出来的数据如果大,需要分页。这个时候就涉及到带参数分页。
分页类的便捷用法:
1,没有参数的时候直接 paginate
具体用法:
//控制器 $list = $ArticleModel->paginate(10); $this->assign('list',$list);
//模板 {$list->render()}
分页每页10页。模板实例这里对象的render即可。[最简单的用法]
2,分页带参数的时候,用到 paginate 后面的几个参数
paginate有三个参数,
第一个必须表是每页分多少个[如果配置文件中设置了,可以不用]
第二个参数表是的是简洁分页,如果为true,那么分页的就是只有上一页和下一页
第三个参数是一个数组,具体可以自己传入或者在配置文件中配置。
重要部分:
参数 | 描述 |
list_rows | 每页数量 |
page | 当前页 |
path | url路径 |
query | url额外参数 |
fragment | url锚点 |
var_page | 分页变量 |
type | 分页类名 |
这里我们需要用到query闭包查询。
实例:
//模型 public function getList($where,$keyword) { $data = $this ->where($where) ->order('art_id desc') ->paginate(10,false,['query' => ['keyword'=>$keyword] ]); return $data; }
2016年11月20日补充更新:
参数的传递可以直接使用助手函数
request()->param()
使用方法就变成了
/**
* 获取文章列表 - 筛选
* @param $where
* @return mixed
*/
public function getList($where)
{
$data = $this
->where($where)
->order('art_id desc')
->paginate(10,false,['query' => request()->param()]);
return $data;
}
下一篇: MySQL删除重复数据...