بخش دوم - مدل ها - قسمت دهم (متد های صفحه بندی)
1- متد paginate
نتایج جستجو را به صورت صفحهبندیشده برمیگرداند و شامل اطلاعات کامل در مورد صفحات، لینکهای صفحات و تعداد کل رکوردها است. این متد تعداد کل رکوردها را محاسبه میکند، بنابراین ممکن است برای دیتابیسهای بزرگتر کمی سنگین باشد.
$users = User::paginate(10);
این کوئری ۱۰ کاربر در هر صفحه را بازیابی میکند. به صورت پیشفرض، لاراول لینکهای صفحهبندی را بر اساس تعداد کل رکوردها نمایش میدهد.
2- متد simplePaginate
مشابه paginate است، اما تعداد کل رکوردها را محاسبه نمیکند. این متد از لینکهای next و previous برای صفحهبندی استفاده میکند، بنابراین سبکتر است و برای مجموعه دادههای بزرگ مناسبتر است.
$users = User::simplePaginate(10);
این کوئری ۱۰ کاربر در هر صفحه را بازیابی میکند و فقط لینکهای "صفحه بعد" و "صفحه قبل" را ارائه میدهد، بدون محاسبه تعداد کل صفحات یا رکوردها.
3- متد cursorPaginate
یک روش سبک و بهینهتر برای صفحهبندی است که از شناسههای منحصر به فرد (cursor) برای مدیریت صفحهبندی استفاده میکند. برخلاف paginate و simplePaginate، این متد نیازی به شمارش کل رکوردها ندارد و برای مجموعه دادههای بسیار بزرگ مناسب است. این نوع صفحهبندی برای مواقعی که نیاز به بارگذاری سریع دارید، استفاده میشود.
$users = User::cursorPaginate(10);
این کوئری ۱۰ کاربر در هر صفحه را با استفاده از شناسههای cursor بازیابی میکند، و به صورت کارآمدتر صفحهبندی انجام میدهد.
متد های صفحه بندی پراپرتی ها و متد های خاصی را نیز در نتیجه خود در اختیار ما قرار می دهند.
1- دریافت شماره صفحه جاری.
$users->currentPage()
2- لینک به صفحه بعد.
$users->nextPageUrl()
3- لینک به صفحه قبل.
$users->previousPageUrl()
4- تعداد رکوردهایی که در هر صفحه نمایش داده میشود.
$users->perPage()
5- تعداد کل رکوردها. در simplePaginate در دسترس نیست.
$users->total()
6- شماره آخرین صفحه. در simplePaginate در دسترس نیست.
$users->lastPage()
7- لینک به صفحه خاص
$users->url(3)
8- تعداد رکوردهای فعلی در صفحه جاری.
$users->count()
9- بررسی میکند که آیا صفحات بیشتری وجود دارد یا خیر. در دسترس از cursorPaginate.
$users->hasMorePages()
10- شناسه cursor صفحه جاری که برای پیمایش صفحات بعدی و قبلی استفاده میشود. در دسترس از cursorPaginate.
$users->cursor()
11- دریافت UI و لینک های صفحه بندی.
$users->links()
▫️ 🟠
🔎 #laravel #لاراول #فصل_۴
💠 @AmirhDeveloper
.