最近做项目发现使用paginate分页,搜索的时候点下一页搜索条件就变没了,所以在网上找了找一些方法,有的说是使用Page类,但是用习惯了paginate,再用Page不习惯,找到了一个方法,可以使用paginate搜索分页
->paginate(15,false,['query'=>request()->param()]);
‘query’=>request()->param()是获取携带的参数,但是仅仅这样写是不行的,因为鼠标放在分页页码上,发现搜索条件是一直存在的,但是数据不对,因为这里页码链接是get方法传参,所以在接收参数的时候需要使用get方式接收参数,如果有的人搜索条件是使用post,没关系,可以使用input(‘param.’)接收,因为param接收get和post参数的,所有使用这个接收就可以达到分页携带并接收搜索条件了,这样分页数据也是对的
/**
* 获取管理员列表
* @author csdeshang
* @param type $condition 条件
* @param type $field 字段
* @param type $page 分页
* @param type $order 排序
* @return type
*/
public function getAdminList($condition = array(), $field = '*', $page = 0, $order = 'admin_id desc')
{
if ($page) {
//__ADMINGROUP__ admingroup group_id 管理员权限组表 权限自增id
//admin admin_group_id 管理员表 权限组ID
$member_list = db('admin')->alias('a')->join('__ADMINGROUP__ g', 'g.group_id = a.admin_group_id', 'LEFT')
->where($condition)->order($order)->paginate($page, false, ['query' => request()->param()]);
// halt($member_list);
$this->page_info = $member_list;
return $member_list->items();
} else {
return db('admin')->alias('a')->join('__ADMINGROUP__ g', 'g.group_id = a.admin_group_id', 'LEFT')->where($condition)->order($order)->select();
}
}