TP5分页使用方法说明
TP5分页的使用方法,在手册中有详细的说明
控制器中关键代码如下:
// 查询状态为1的用户数据 并且每页显示10条数据 l i s t = D b : : n a m e ( ′ u s e r ′ ) − > w h e r e ( ′ s t a t u s ′ , 1 ) − > p a g i n a t e ( 10 ) ; / / 把 分 页 数 据 赋 值 给 模 板 变 量 l i s t list = Db::name('user')->where('status',1)->paginate(10);// 把分页数据赋值给模板变量list list=Db::name(′user′)−>where(′status′,1)−>paginate(10);//把分页数据赋值给模板变量listthis->assign(‘list’, l i s t ) ; / / 渲 染 模 板 输 出 r e t u r n list);// 渲染模板输出return list);//渲染模板输出returnthis->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()返回的是对象类型的结果集
下面是我的处理方法
// 查询状态为1的用户数据 并且每页显示10条数据 l i s t = D b : : n a m e ( ′ u s e r ′ ) − > w h e r e ( ′ s t a t u s ′ , 1 ) − > p a g i n a t e ( 10 ) ; / / 获 取 分 页 显 示 list = Db::name('user')->where('status',1)->paginate(10);// 获取分页显示 list=Db::name(′user′)−>where(′status′,1)−>paginate(10);//获取分页显示page = l i s t − > r e n d e r ( ) ; list->render(); list−>render();data = l i s t − > a l l ( ) ; f o r e a c h ( list->all();foreach( list−>all();foreach(dataas k e y = > key=> key=>val){ d a t a [ data[ data[key][‘key’] = KaTeX parse error: Expected 'EOF', got '}' at position 5: key;}̲this->assign(‘data’, d a t a ) ; data); data);this->assign(‘page’, p a g e ) ; / / 渲 染 模 板 输 出 r e t u r n page);// 渲染模板输出return page);//渲染模板输出returnthis->fetch();
模板文件中分页输出代码如下:
{volist name=‘data’ id=‘user’}
{$user.nickname}
{/volist}
{$page}