tp5查询数据经过foreach处理后,分页方法失效
有时候我们需要统计数据,但数据处理后分页信息就没了,就无法使用TP5自带的分页方法,或者前端使用的不是bootstrap框架,使用分页方法样式就失效了,博主网上找了很久也没有找,所以就自己写了个分页方法,这样就可以使用自己的分页样式或者处理完数据后,进行分页,今天把它放在这里,希望能帮助到你
下方分别是控制器代码和前端代码
控制器代码:
public function fy(){
//根据自己的需求在下面3条查询语句中选择一条
//查询所有数据
$select=Db('test')->select();
//限制展现的数据数使用paginate(),比如100条
$select=Db('test')->paginate(100);
//如果有进行条件筛选的话第一个是同上是要展现的条数,第二个是改方法本身查询条数的参数,填false即可,第三个为条件参数,通过get方法传入
$select=Db('test')->paginate(100,false,$config = ['query' => array('Xid' => input('Xid'),'code' => input('code'))]);
//自己进行的数据处理
foreach($select as $k=>$v){
//比如循环后生成新的数据就变成了数组
$jrtt[$k]=$v;
}
//分页处理
$page=input('get.page');//获取get传入的分页参数
//当分页条件为空时,默认首页
if($page==""){
$page=1;
}
$pagesize=10;//每页显示条数
$count = count($jrtt);//总条数
$page_count=$count/$pagesize;//页面数
//计算分页页数
if($count%$pagesize!=0){
$page_count=ceil($page_count);
}
$start=($page-1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
$end=($page+1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
$formArr = array_slice($jrtt,$start,$pagesize);
$this->assign('jrtt',$formArr);
$pageArr=array(
'page'=>$page,//当前分页
'count'=>$count,//数组信息总数
'page_count'=>$page_count,//页数
'start'=>$start,//上一页
'end'=>$end,//下一页
);
// dump($pageArr);die;//查看分页数据
$this->assign("pageArr",$pageArr);
return view('list');
}
前端代码(将php填入自己的样式中,如果前端使用的是bootstrap的话,直接复制即可)
<!--分页-->
<div style="padding-top:10px; text-align:right;">
<ul class="pagination">
<!--判断当前是否是首页,是不能点击,不是,当前页减1,可点击跳转-->
{if condition="$pageArr.page==1"}
<li class="disabled"><span>«</span></li>
{else /}
<li><a href="/index.php/admin/jrtt/index?page={$pageArr.page-1}">«</a></li>
{/if}
<!--循环页数 123456页-->
{for start="1" end="$pageArr.page_count+1"}
{if condition="$i==$pageArr.page"}
<li class="active">
<span>{$i}</span>
</li>
{else /}
<li><a href="/index.php/admin/jrtt/index?page={$i}">{$i}</a></li>
{/if}
{/for}
<!--判断当前是否是尾页,是不能点击,不是,当前页+1,可点击跳转-->
{if condition="$pageArr.page==$pageArr.page_count"}
<li class="disabled"><span>»</span></li>
{else /}
<li><a href="/index.php/admin/jrtt/index?page={$pageArr.page+1}">»</a></li>
{/if}
</ul>
</div>
<!--分页结束-->
到此就结束了,希望能帮到打架,如果需要权限功能的代码的话可到这获取https://www.kancloud.cn/zhuoe123/thinkphp5/1656454