分页使用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>
效果为:
我们可以采用不同的样式,进行自由编写和调整。
当然也可以增加一些想要展示的内容,例如:符合条件的查询一共有多少条记录;
当然你可以通过重构或者新建一个分页样式类类似这个,以此实现。
当然,你也可以采用比较懒的方法,直接在此文件中修改也可以:
下面我只简单的增加一个总记录数,以做参考:
那么就会在分页后,加上这么一个统计: