danbovey / laravel-linkheader-paginator
将分页信息移动到 HTTP LinkHeader 的 Laravel 分页器
1.0.1
2016-11-06 23:30 UTC
Requires (Dev)
- illuminate/http: ^5.3
- illuminate/pagination: ^5.3
- phpish/link_header: dev-master
- phpunit/phpunit: ^5.6
This package is not auto-updated.
Last update: 2024-09-29 01:07:31 UTC
README
一个自定义的 Laravel/Lumen 分页器,使用Link header (RFC 5988) 发送分页信息。移除了 data
的封装!
添加了一个名为 toResponse
的方法,该方法返回带有头部的 JSON 响应。如果需要不同的响应数据,存在 getHeaders
方法。
安装
$ composer require danbovey/laravel-linkheader-paginator
用法
使用 Eloquent/DB Builder 创建分页,并将其传递给 LengthAwarePaginator
。
$items = User::where('active', 1)->paginate(20); $paginator = new LengthAwarePaginator($items); return $paginator->toResponse();
简单分页
简单分页器不需要知道结果集中项目的总数;然而,由于这个原因,该类不会返回最后一页的 URI。讽刺的是,使用这个库,简单分页器的工作量更大。为了节省查询,应跳过使用 simplePaginate
方法,并自行实现 skip
/take
逻辑。
$page = $request->get('page'); $perPage = 20; // Take one more than needed to see if there is a next page $users = User::skip(($page - 1) * $perPage) ->take($perPage + 1); $paginator = new Paginator($simple, $items); return $paginator->toResponse();