最近在做项目,使用的是thinkphp5(tp5)开发的,使用tp5内置的分页功能。
那么,问题来了,我使用paginate函数生成分页时,若没有第二页是没有关系的,但是当出现分页时,结果没有请求参数。
也就是说,分页如何添加参数,搜索的时候第二页没有参数了,不可能每次手动添加吧?
查找paginate函数
细细看paginate函数包括三个参数,如下:
/**
* 分页查询
* @param int|array $listRows 每页数量 数组表示配置参数
* @param int|bool $simple 是否简洁模式或者总记录数
* @param array $config 配置参数
* page:当前页,
* path:url路径,
* query:url额外参数,
* fragment:url锚点,
* var_page:分页变量,
* list_rows:每页数量
* type:分页类名
* @return \think\Paginator
* @throws DbException
*/
public function paginate($listRows = null, $simple = false, $config = [])
{
原来我们可以传配置参数的。那么就很好实现了。
解决办法
$order = $orderModel->where($where)->paginate(10, false, [ 'query' => request()->param(), ]);
将请求参数带过去就可以了!
模板文件中分页输出代码如下:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}
也可以单独赋值分页输出的模板变量
// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();
模板文件中分页输出代码如下:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page}