تقسيم بيانات جاهزة بإستخدام LengthAwarePaginator
ال LengthAwarePaginator بتساعدك ترقم بيانات موجودة في الذاكرة لما تعرف العدد الإجمالي
تجهيز عناصر الصفحة المطلوبة
لازم تقطع عناصر الصفحة بنفسك قبل تمريرها إلى Paginator
<?php
use Illuminate\Pagination\LengthAwarePaginator;
$all = collect(range(1, 5));
$page = 2;
$perPage = 2;
$items = $all->forPage($page, $perPage)->values();
$paginator = new LengthAwarePaginator($items, $all->count(), $perPage, $page, ["path" => "/items"]);
echo json_encode($paginator->items());النتيجة
[3,4]قراءة عدد الصفحات
إجمالي خمسة عناصر مع عنصرين في الصفحة بينتج ثلاث صفحات
<?php
use Illuminate\Pagination\LengthAwarePaginator;
$paginator = new LengthAwarePaginator([3, 4], 5, 2, 2, ["path" => "/items"]);
echo $paginator->lastPage(), "\n";
echo $paginator->url(3);النتيجة
3
/items?page=3ملحوظة
مع بيانات قاعدة بيانات كبيرة إستخدم paginate على الإستعلام بدل تحميل كل السجلات إلى الذاكرة