网站首页 laravel框架
laravel--分页--深入分页操作
发布时间:2016-07-18 10:48查看次数:3914
应用需求!
因为paginate 这个可以帮到DB上也可以帮到model上,使用很方便,
但是如果你的需求是很复杂的SQL的时间 他就会很耗时,为什么呢?
因为他需要先执行一个select * as assdf 什么的后边跟上你
超级复杂的SQL
等于多执行一次复杂的SQL 速度很很吃力
这个时间就需要手动分页出来了!
示例代码与代码注释:
select count(*) as aggregate from `t_event_signup`
left join `t_orderform` on `t_orderform`.`task_id`
= `t_event_signup`.`id` where `works_classification` LIKE '%'
and `isDelete` = '1'
and `saishi_ID` = '76'
and `event_group` = '专业组'
and 1 = 1
执行时间:
10秒啊
一个回来就20秒
下边收手动代码:
$page = 1; 定义分页为第一页
if ($req->input('page')) {
取分页如果有分页就用分页的值
$page = $req->input('page');
}
分页数量
$pagesize = 20;
//数据格式统计代码数量
$total = count($tmp);
//实例化一个手动分页类
$paged = new LengthAwarePaginator($tmp, $total, $pagesize);
//设置分页的路径->返回分页自身
$paged = $paged->setPath(url('admin/screen/filtrate'));
//设置数据 (这里很重要哦)
$pageout = array_slice($tmp, ($page - 1) * $pagesize, $pagesize);
//分页输出...还是用的bootstrap 的分页样式
// echo $paged->links();
return view('admin.filtrate',compact('pageout','paged')); //这里要注意给前台页面的数据 一个是数据 一个分页对象
关键字词:laravel--分页--深入分页操作