• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

laravel自定义分页是如何实现的?

php 搞代码 3年前 (2022-01-22) 46次浏览 已收录 0个评论

对于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 = empt<div style="color:transparent">本文来源gaodai.ma#com搞##代!^码@网*</div><pre>搞gaodaima代码

y($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; }}

以上就是laravel自定义分页是如何实现的?的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:laravel自定义分页是如何实现的?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址