thinkphp5内置分页功能第二页没有拿到参数,如何解决?

xiaoxiao2021-02-28  24

最近在做项目,使用的是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}
转载请注明原文地址: https://www.6miu.com/read-2599966.html

最新回复(0)