توسعه دهنده بک اند (پارس سیستم)
Cursor Pagination در لاراول
اگر با صفحهبندیهای لاراول (pagination) کار کرده باشین میدانید که نحوه ی کار آنها به چه صورت است
ایجاد چنین صفحه بندی در لاراول اصلا کار سختی نیست، شما میتوانید با نوشتن کد زیر یک صفحه بندی آماده در لاراول ایجاد کنید.
use App\Models\User;
$users = User::paginate(15);
$users = User::where('votes', '>', 100)->simplePaginate(15);
Laravel Cursor Pagination
حالا در نسخهی لاراول 8.41 متود جدیدی در لاراول اضافه خواهد شد که صفحهبندی را بسیار بهینهتر و کارآمدتر از نمونههای قبلی آن خواهد کرد.
$users = User::orderBy('id')->cursorPaginate(10);
اما این متود چه تفاوتی با متودهای قبلی دارد؟
اگر خاطرتان باشد در متودهای قبلی صفحه بندی لاراول آدرس url لینکهای صفحه بندی به صورت زیر بود
http://127.0.0.1:8000/users?page=2
اما در نسخهی جدید این متود آدرسهای url به صورت یک رشتهی یونیک در خواهد آمد لذا کاربران دیگر نمیتوانند با وارد کردن آدرس https://example.com/user?page=3 مثلا به صفحهی سوم سایت شما دسترسی داشته باشند و برای دیدن صفحات دیگر حتما باید وارد صفحهی اول سایت شما شوند.
{
"data": [
{
"id": 1,
"name": "Nona Wilkinson",
"email": "stephen68@example.com",
"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": "oklein@example.com",
"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
}
همچنین به گفتهی سازندگان این متود، این مدل صفحه بندی برای کار با بیگدیتا، جداول بزرگ و API بسیار بهینهتر و کارآمدتر عمل میکند.
مطلبی دیگر از این انتشارات
سرویس کانتینر و سرویس پرووایدر در لاراول
مطلبی دیگر از این انتشارات
کارگاه مهارت سنجی برنامه نویسان
مطلبی دیگر از این انتشارات
لاراول : Mass Assignment