thinkphp分页使用paginate()方法来实现是十分方便的,但是如果需要对查询的信息做进一步的处理才能在前台页面输出,就必须通过each()方法,对查询得到的结果进行遍历操作。
public function faculty() { //查询院系专业信息 //--查询院系专业信息 $result=Db::name('sys_faculty')->field('*')->paginate(10,false,[ 'query'=>['user'=>'123','role'=>'student'] ])->each(function($item, $key){ //在这里对查询的值进行进一步的整理!!! $f_faculty=Db::name('sys_faculty')->field('name')->where('id',$item['parentid'])->find(); $item['faculty']=$f_faculty['name']; //如果是Db类操作分页数据的话,each方法的闭包函数中需要使用返回值 return $item; }); $this->assign(['result' => $result]); return $this->fetch(); }
直接输出分页的话,没有样式,不规则,很难看。
下面可以通过简单的样式,改善一下输出效果:
<style> .page_li{ } .page_li li{ display:inline-block; padding:0px 10px; } .page_li li a{ display:inline-block; padding:0px 4px; color:#0088CC; font-size:small; } .page_li li.active{ color:red; font-size:large; } </style>
效果为:
网上有人分享的另一个样式:
<style> /*分页*/ .pagination {} .pagination li { display: inline-block; margin-right: -1px; padding: 5px; border: 1px solid #e2e2e2; min-width: 20px; text-align: center; } .pagination li.active { background: #009688; color: #fff; border: 1px solid #009688; } .pagination li a { display: block; text-align: center; } </style>
效果为:
我们可以采用不同的样式,进行自由编写和调整。
当然也可以增加一些想要展示的内容,例如:符合条件的查询一共有多少条记录;
当然你可以通过重构或者新建一个分页样式类
类似这个,以此实现。
当然,你也可以采用比较懒的方法,直接在此文件中修改也可以:
下面我只简单的增加一个总记录数,以做参考:
那么就会在分页后,加上这么一个统计:
本文来自ThinkPHP框架技术文章栏目:http://www.php.cn/phpkj/thinkphp/
以上是thinkphp如何实现分页的详细内容。更多信息请关注PHP中文网其他相关文章!