美文网首页ThinkPHP
tp5分页 改动数据结构时报错问题

tp5分页 改动数据结构时报错问题

作者: 端木安玉 | 来源:发表于2019-02-13 17:32 被阅读9次

以下是手册上,TP5分页的使用方法,

控制器中关键代码如下:

          // 查询状态为1的用户数据 并且每页显示10条数据
          $list = Db::name('user')->where('status',1)->paginate(10);
          // 把分页数据赋值给模板变量list
          $this->assign('list', $list);
          // 渲染模板输出
          return$this->fetch();

模板文件中分页输出代码如下:

 {volist name='list' id='user'}

      {$user.nickname}

{/volist}

{$list->render()}

上面的方法非常简单,但是如果我想在查询出来的数据中加入新的值的,上面的方法就不能用了,当你尝试对$list进行循环的时候,会报如下的错误

Indirect modification of overloaded element of think\paginator\Collection has no effect

这是因为$list不是一个数组,而是数据集对象think\Collection手册地址

select()返回的是二维数组结果集,paginate()返回的是对象类型的结果集

下面是我的处理方法

        //查询数据
        $list = $plan->paginate(10);

        // 获取分页显示
        $page = $list->render();
        $data = $list->all();
        foreach ($data as $key => $val) {
            // 测试改变数据结构
            $data[$key]['key'] = 123;
        }
        $this->assign('data', $data);
        $this->assign('page', $page);
        // 渲染模板输出
        return $this->fetch();

模板文件中分页输出代码如下:

{volist name='data' id='user'}

{$user.nickname}

{/volist}

{$page}

这样就解决了tp5分页 改动数据结构时报错问题

相关文章

网友评论

    本文标题:tp5分页 改动数据结构时报错问题

    本文链接:https://www.haomeiwen.com/subject/fbvdeqtx.html