8

Laravel 8.x Cursor Based Pagination Example

 3 years ago
source link: https://dev.to/sureshramani/laravel-8-x-cursor-based-pagination-example-2ipj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Cover image for Laravel 8.x Cursor Based Pagination Example

Laravel 8.x Cursor Based Pagination Example

Jun 20 Originally published at techvblogs.com

・2 min read

Introduction

Hello Developer, In this blog, I will teach you the Laravel 8.x cursor-based pagination example. The Laravel team released 8.41 with cursor pagination, a new eloquent method to update models quietly, a new string method, and the latest changes in the 8.x branch:

Cursor pagination works by constructing "where" clauses that compare the ordered column values ​​in the query, providing the most efficient database performance available amongst all of Laravel's pagination methods. This method of pagination is particularly well-suited for large data sets and "infinite" scrolling user interfaces. Unlike offset-based pagination, which includes a page number in the query string of the URLs generated by the paginator, cursor-based pagination places a "cursor" string in the query string.

There is no pagination for the Laravel cursor. So solving those issues Laravel team released 8.41 with cursor pagination. See the below example of how we can create cursor pagination.
Example

$users = User::orderBy('id')->cursorPaginate(10);
Enter fullscreen modeExit fullscreen mode

Given the above pagination call for ten records, here's an example of the response if we were to return this instance in a controller:

{
  "data": [
    {
      "id": 1,
      "name": "Nona Wilkinson",
      "email": "[email protected]",
      "email_verified_at": "2021-05-12T23:21:19.000000Z",
      "created_at": "2021-05-12T23:21:19.000000Z",
      "updated_at": "2021-05-12T23:21:19.000000Z"
    },
    {
      "id": 2,
      "name": "Titus Feeney Sr.",
      "email": "[email protected]",
      "email_verified_at": "2021-05-12T23:21:19.000000Z",
      "created_at": "2021-05-12T23:21:19.000000Z",
      "updated_at": "2021-05-12T23:21:19.000000Z"
    },
    {...}
  ],
  "path": "http://127.0.0.1:8000/users",
  "per_page": 10,
  "next_page_url": "http://127.0.0.1:8000/users?cursor=eyJpZCI6MTAsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
  "prev_page_url": null
}
Enter fullscreen modeExit fullscreen mode

Thank you for reading this blog.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK