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
}
このブログを読んでいただきありがとうございます.
Reference
この問題について(Laravel 8.x カーソルベースのページネーションの例), 我々は、より多くの情報をここで見つけました https://dev.to/sureshramani/laravel-8-x-cursor-based-pagination-example-2ipjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol