微信公众号定制开发

TP5分页使用方法
<p style="color:#333333;font-family:" font-size:16px;"=""><br /> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 最近群里很多人问关于TP5分页的相关问题,故写此文,分享一下我的使用心得,有不妥之处欢迎交流。 </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> TP5分页的使用方法,在手册中有详细的说明 </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 控制器中关键代码如下: </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""><span style="line-height:1.5;"> <pre class="prettyprint lang-php">// 查询状态为1的用户数据 并且每页显示10条数据 $list = Db::name('user')-&gt;where('status',1)-&gt;paginate(10); // 把分页数据赋值给模板变量list $this-&gt;assign('list', $list); // 渲染模板输出 return $this-&gt;fetch();</pre> <br /> </span> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""><span style="line-height:1.5;">模板文件中分页输出代码如下:</span> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> <pre class="prettyprint lang-html">&lt;div&gt; &lt;ul&gt; {volist name='list' id='user'} &lt;li&gt; {$user.nickname}&lt;/li&gt; {/volist} &lt;/ul&gt; &lt;/div&gt; {$list-&gt;render()}</pre> </p> <p> <br /> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 上面的方法非常简单,但是如果我想在查询出来的数据中加入新的值的,上面的方法就不能用了,当你尝试对$list进行循环的时候,会报如下的错误 </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> <em>Indirect modification of overloaded element of think\paginator\Collection has no effect</em> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 这是因为$list不是一个数组,而是数据集对象think\Collection <a href="http://www.kancloud.cn/manual/thinkphp5/150164">手册地址</a> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 下面是我的处理方法 </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""><br /> </p> <pre class="prettyprint lang-php">// 查询状态为1的用户数据 并且每页显示10条数据 $list = Db::name('user')-&gt;where('status',1)-&gt;paginate(10); // 获取分页显示 $page = $list-&gt;render(); $data = $list-&gt;all(); foreach($data as $key=&gt;$val){ $data[$key]['key'] = $key; } $this-&gt;assign('data', $data); $this-&gt;assign('page', $page); // 渲染模板输出 return $this-&gt;fetch();</pre> <p> <br /> </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> 模板文件中分页输出代码如下: </p> <p style="color:#333333;font-family:" font-size:16px;background-color:#ffffff;"=""> <pre class="prettyprint lang-html">&lt;div&gt; &lt;ul&gt; {volist name='data' id='user'} &lt;li&gt; {$user.nickname}&lt;/li&gt; {/volist} &lt;/ul&gt; &lt;/div&gt; {$page}</pre> </p> <p> <br /> </p> <p> <br /> </p>