手机版

thinkphp数组分页示例

时间:2021-11-09 来源:互联网 编辑:宝哥软件园 浏览:

分页是在thinkphp框架下实现的。公司网站基于Thinkphp框架,听说thinkphp很久了,终于有机会实战了。Thinkphp是MVC架构,MVC对任何ITers、模型-视图-控制器都不陌生。他把逻辑和数据分开处理,从而省去了很多繁琐的过程。其实官方资料已经详细介绍了如何分页。门户:http://document.thinkphp.cn/manual_3_2.html#data_page不适用于数据已经从DB中取出并转换成数组的情况。接触PHP个月,接触thinkphp才3周。为了熟悉thinkphp,我花了很多时间在官方文档上。也是樵夫磨刀不误砍柴。这里将官方文档描述为一个对比:(只取文档上的第一个方法):使用Page类和limit方法,代码如下:复制代码如下: $ User=M(' User ');//实例化User对象$ count=$ User-其中(' status=1 ')-count();//查询满足要求的记录总数$Page=new \Think\Page($count,25);//实例化从分页类传入的记录总数和每页显示的记录数(25)$ show=$ Page-show();//分页显示输出//分页数据查询。注意极限方法的参数。使用属性$ list=$ user-where(' status=1 ')-order(' create _ time ')-limit($ Page-first row)。','.$ page-list rows)-选择Page类的()。$this-assign('list ',$ list);//赋值数据集$this-assign('page ',$ show);//分配分页输出$ this-display();//输出模板的基本思想是先计算记录总数,然后按照设定的每页显示记录数来划分页面。Thinkphp封装的页面类很容易实现。实现的重点在第11行,limit方法是按照一定的规则从查询数据中提取数据。但是如果数据已经被取出来了呢?我们使用了php附带的函数array_slice()。这里定义:http://www.php.net/manual/en/function.array-slice.php实际上是极限方法的数组版本。好吧,一旦找到工具,就很容易实现了。直接代码:复制代码如下:公共函数nodeslist(){ $ portal=new portal API;$ nodelist=$ portal-getNodeLists($ this-uid);$ count=count($ nodelist[' data ']);$p=新页面($count,10);$ list=array _ slice($ nodelist[' data '],$p-firstRow,$ p-listRows);$ page=$ p-show();$this-assign('page ',$ page);$this-assign('nodes ',$ lists$ this-display();}代码已删除,仅保留实现细节。第3行中的getNodeLists方法从数据库中取出数据,并将其分配给数组NodeLists。第5行计数计算数组元素的数量。在第6行,参数被传递给Page类。第7行中的array_slice函数取代了limit方法。同样的原则。第9行通过赋值方法为模板赋值。定义是这样的:http://document.thinkphp.cn/manual_3_2.html#assign.的第10行也是如此,下面是查看的代码:复制的代码如下: div class=' page-list ' { $ page }/div。如果只有这种情况,显示的效果就不友好了。再次找出Page类的定义:复制代码如下://Page显示自定义私有$ config=array(' header '=' span class=' rows ' TOTAL % TOTAL _ ROW % records/span ',' prev'='上一页',' next'='下一页',' First'='第一页',' last'='.% total _ page% ',主题'=' % first % % up _ page % % link _ page % % down _ page % % end % ',在页数前后添加空格。现在你可以看到效果了:

跟大背景还是挺配的,当然可以根据自己的情况设置不同的效果。

版权声明:thinkphp数组分页示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。