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

以下是手册上,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分页的使用方法,在手册中有详细的说明 控制器中关键代码如下: // 查询状态为1的用户数据 并且每页显示10...
    闲淡拾忆阅读 11,373评论 0 2
  • 2 Encounter 电梯的数字不断迅速的变换,看的杜齐光眼花缭乱,昏昏沉沉。迷迷糊糊中好像也是这样一个午后,他...
    Yive_Zhang张凶残阅读 1,495评论 0 0
  • 以我其貌不扬,换你平安健康. 以我固执平常,换你自在倔强. 以我余生幸运,换你一个好人. 穷我所有力量,牵你一人天...
    皊晞阅读 1,781评论 0 1
  • 我看见一只鹤在天上飞 就知道,天亮了 生活的翅膀已经不可避免地打开 通向自由的路只有一条 鼓翼,鼓翼…… 田南 2...
    田南阅读 1,774评论 0 2