一 、 自定义分页
一 、控制器
/*
* 搜索
*/
public function sou(){
//接值
$name=Input::get('name');
$start=Input::get('start');
$end=Input::get('end');
//拼接搜索条件
$where='1';
//模糊查询
if(!empty($name)){
$where.=" and e_title like '%$name%'";
}
//时间段
if(!empty($start)){
if(!empty($end)){
$where.=" and e_time between '$start' and '$end'";
}
}
//接收当前页码
$page=Input::get('pages');
//echo $page;die;
//判断当前页码是否存在
$pages = isset($page) ? $page : 1 ;
//echo $pages;die;
//计算总条数
$count = DB::table('email')->count();
//设置每一页显示的条数
$pageSize = 3 ;
//计算总页数
$pageSum = ceil($count/$pageSize);
// echo $pageSum;
//计算偏移量
$offset = ($pages - 1)*$pageSize;
//echo $offset;die;
//计算上一页 下一页
$last = $pages<=1 ? 1 : $pages-1 ;
$next = $pages>=$pageSum ? $pageSum : $pages+1 ;
//拼接A链接
$str = '';
$str .= "<a href='javascript:void(0);' onclick='page(1)'>首页</a>";
$str .= "<a href='javascript:void(0);' onclick='page($last)'>上一页</a>";
$str .= "<a href='javascript:void(0);' onclick='page($next)'>下一页</a>";
$str .= "<a href='javascript:void(0);' onclick='page($pageSize)'>尾页</a>";
//查询分页后的数据信息
$results = DB::select("select * from email where $where limit $offset,$pageSize");
//关键字变红
foreach($results as $key=>$val){
$results[$key]->e_title=str_replace($name,"<font color='red'>$name</font>",$val->e_title);
}
//渲染
return view('sou',['list'=>$results,'page'=>$str,'name'=>$name,'start'=>$start,'end'=>$end]);
}
二 、视图层
//分页输出
<?php echo $page?>
三、 搜索传后台
function sou(page){
// 搜索的值
var na=$("#name").val();
//开始的时间
var sta=$("#start").val();
//结束的时间
var en=$("#end").val();
$.get("{{URL('sou')}}", { pages:page,name:name,start:start,end:end},function(msg){
//替换整个页面
$("#html").html(msg)
} );
}
二、框架分页
一、控制器
public function show(Request $request)
{
$lists = $this->_service->getList($request, 15); //使用服务层
$m_id=empty($request->m_id)?0:$request->m_id; //接值
$g_id=empty($request->g_id)?0:$request->g_id; //接值
$list_data= $ListService->getData(request()); //获取查询数据
$list_groups = $ListGroupService->getData(request());
return view('management.list',compact('lists','list_data','list_groups ','m_id','g_id'));
}
二、服务层
public function getList(Request $request, $page = null)
{
//判断拼接查询条件
if(!empty($request->g_id)){
$where['g_id']=$request->g_id;
}
if(!empty($request->m_id)){
$where['m_id']=$request->m_id;
}
$list= new ListModel; //实例化Model
if($request->m_id <>'' || $request->g_id<>'' ){
$list= $list->where($where) ->whereOr($where);
}
$list= $list
->leftJoin('list_group as g','list_data.g_id','=','g.id')
->select('list_data.*','g.name')
->orderBy('index', 'desc');
//->toSql(); dd($list); //打印sql语句;
if($page != null) {
return $list->paginate($page); //设置分页
}
return $list->get();
}
三、视图层
//默认使用的分页
{{$lists->render()}}
//如果想在前台分页连接中附加参数,可以在controller绑定view中增加参数:
return view('management.list',compact('lists','m_id','g_id'));
//添加分页参数,显示分页
@if($m_id <> 0 || $g_id <> 0)
//除去页面上的分页链接代码
<div style="display: none">{{$lists->appends(['m_id'=>$m_id,'g_id'=>$g_id])->render()}}</div>
@endif
这样前台分页的地址就从?page=3 变成?m_id=1&g_id=2&page=3 了。