laravel自定义分页效果
更新时间:2017年07月23日 11:49:07 作者:李硕
这篇文章主要为大家详细介绍了laravel自定义分页实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
对于laravel分页,自带一个paginate的方法,很好用,但是也是有局限性的。
所以自己针对于此写了一个自己的分页,具体代码如下
<?php namespace ...; use ...; /** * 自定义分页类,适合少数据的查询,多数据的时候不推荐 * Class CustomPaginate * @package App\Tools\Paginate */ class CustomPaginate { /** * 自定义数组分页 * @param $data = 返回结果 * @param $page * @param $limit * @return mixed */ public static function paginate($data, $page = 1, $limit = 10) { if (!is_numeric($page) || !is_numeric($limit)) { return false; } $count = count($data); $data = array_slice($data, ($page - 1) * $limit, $limit); return new LengthAwarePaginator($data, $count, $limit, $page); } /** * 参数解释 对外暴露的方法 * @param $data = array|collection 切记只支持这两种 * @param $page = 当前页 * @param $limit = 每一页展示几条 * @return array|false * 返回结果为数组 * 调用实例: CustomPaginate::paginateToArray($data, $request->page, $request->limit); */ public static function paginateToArray($data, $page = 1, $limit = 10) { $isValidate = self::validate($data, $page, $limit); //验证 if ($isValidate === false) { return false; } $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; } /** * 验证参数是否合法 */ public static function validate(&$data, &$page = 1, &$limit = 10) { $page = empty($page) ? 1 : $page; $limit = empty($limit) ? 10 : $limit; if (!is_array($data) && !$data instanceof Collection) { return false;//"自定义分页方法只支持数组数据和集合数据"; } if (!is_numeric($page) || !is_numeric($limit)) { return false;//"page limit 参数只支持数字"; } if ($data instanceof Collection) { return $data = $data->toArray(); } return $data; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
openai createChatCompletion函数使用实例
这篇文章主要为大家介绍了openai createChatCompletion函数使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-05-05ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
这篇文章主要介绍了ThinkPHP模板Volist标签嵌套循环输出多维数组的方法,结合实例形式详细分析了Volist标签嵌套调用输出多维数组的相关技巧,需要的朋友可以参考下2016-03-03php使用wangeditor实现富文本遇见问题及两种解决方法
在 PowerShell 中使用 npm install 命令时,命令行解析器可能会将 @ 符号解释为特殊字符,导致出现错误,遇到这样的问题如何解决呢,下面通过本文介绍php使用wangeditor实现富文本-遇见问题,需要的朋友可以参考下2023-12-12TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
这篇文章主要介绍了TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法,结合实例形式分析了thinkPHP5框架结合bootstrap实现图片上传相关布局与控制器操作技巧,需要的朋友可以参考下2019-05-05
最新评论