Skip to content

Pagination

Paginate model queries with total counts and page metadata:

typescript
// Shorthand
const page = await User.paginate(15, 2);

// Model query
const users = await User.query().orderBy('id').paginateModels(15, 2);

// From request query string (?page=3&per_page=25)
const users = await User.query()
  .orderBy('id')
  .paginateModels(request.perPage(), request.page());

return UserResource.collection(users);

LengthAwarePaginator#toArray() returns:

json
{
  "data": [],
  "currentPage": 1,
  "perPage": 15,
  "total": 42,
  "lastPage": 3,
  "from": 1,
  "to": 15
}

Released under the MIT License.