最近在做thinkphp项目的时候遇到的一个问题,记录一下最终解决办法
目前的问题是点击分页会覆盖原来的get参数,如:hvzhan.com/code/list-1.html?type=1 那么在有分页的情况下我点击分页会变成:hvzhan.com/code/list-1.html?page=2 这就不是我想要的效果了,我想实现的效果是如果地址栏后面有get参数的时候点击分页让分页在get参数后面追加分页参数,而不是覆盖原来的参数。
查了一下thinkphp开发文档,paginate是可以带参数的,然后研究了下,大概就是这样的:
第一种解决办法:利用request助手函数
$list=Db::name('member')
->where('member_name|member_mobile|sex','like','%'.$info.'%')
->paginate(8,false,['query'=>request()->param() ]);
$this->assign('list',$list);
这样问题是解决了,分页也会在原来的get参数后追加,但是发现有点问题,利用助手函数会把全部的get参数都携带进去
于是我用的下面这个方法解决:
$config['query'] = ['键'=>'值']; 额外参数
比如我现在网页有两个get参数,一个是type一个是order
我是这样写的:
$config['query'] = ['type'=>$type,'order'=>$order];
$list = Db::name('member')->paginate(15,false,$config);