Laravel 8.x カーソルベースのページネーションの例

1872 ワード

序章



こんにちは開発者、このブログでは、Laravel 8.x のカーソルベースのページネーションの例を紹介します. Laravel チームは、カーソルのページネーション、モデルを静かに更新するための新しい雄弁なメソッド、新しい文字列メソッド、および 8.x ブランチの最新の変更を含む 8.41 をリリースしました.

カーソルのページネーションは、クエリで順序付けられた列の値を比較する「where」句を構築することで機能し、Laravel のすべてのページネーション メソッドの中で最も効率的なデータベース パフォーマンスを提供します.このページネーションの方法は、大規模なデータ セットや「無限」スクロール ユーザー インターフェイスに特に適しています.ページネーターによって生成された URL のクエリ文字列にページ番号を含むオフセット ベースのページネーションとは異なり、カーソル ベースのページネーションはクエリ文字列に「カーソル」文字列を配置します.

Laravel カーソルのページネーションはありません.これらの問題を解決するため、Laravel チームはカーソル ページネーションを備えた 8.41 をリリースしました.カーソルのページネーションを作成する方法については、以下の例を参照してください.


$users = User::orderBy('id')->cursorPaginate(10);


10 個のレコードに対する上記のページネーション呼び出しが与えられた場合、コントローラーでこのインスタンスを返す場合の応答の例を次に示します.

{
  "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
}


このブログを読んでいただきありがとうございます.