TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #313 152
فصل چهار - مدل‌ها و Eloquent ORM

بخش دوم - مدل ها - قسمت دهم
(متد های صفحه بندی)

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
.
  • ❤ 1
  • 👍 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →