laravel自定义分页效果
对于laravel分页,自带一个paginate的方法,很好用,但是也是有局限性的。
所以自己针对于此写了一个自己的分页,具体代码如下
page,$request->limit);
*/
publicstaticfunctionpaginateToArray($data,$page=1,$limit=10)
{
$isValidate=self::validate($data,$page,$limit);//验证
if($isValidate===false){
returnfalse;
}
$res=self::paginate($data,$page,$limit)->toArray();//分页数据转换为数组
//上一页||下一页=>path
if($res['prev_page_url']!=null){
$prev_page=$page-1;
$res['prev_page_url']=Paginator::resolveCurrentPath()."?page=".$prev_page."&limit=".$limit;
}
if($res['next_page_url']!=null){
$next_page=$page+1;
$res['next_page_url']=Paginator::resolveCurrentPath()."?page=".$next_page."&limit=".$limit;
}
return$res;
}
/**
*验证参数是否合法
*/
publicstaticfunctionvalidate(&$data,&$page=1,&$limit=10)
{
$page=empty($page)?1:$page;
$limit=empty($limit)?10:$limit;
if(!is_array($data)&&!$datainstanceofCollection){
returnfalse;//"自定义分页方法只支持数组数据和集合数据";
}
if(!is_numeric($page)||!is_numeric($limit)){
returnfalse;//"pagelimit参数只支持数字";
}
if($datainstanceofCollection){
return$data=$data->toArray();
}
return$data;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。