@if ($paginator->hasPages()) @php $lastPage = $paginator->lastPage(); $currentPage = $paginator->currentPage(); $pages = []; if ($lastPage <= 6) { for ($i = 1; $i <= $lastPage; $i++) { $pages[$i] = true; } } else { if ($currentPage <= 3) { for ($i = 1; $i <= 3; $i++) { $pages[$i] = true; } } for ($i = max(1, $currentPage - 1); $i <= min($lastPage, $currentPage + 1); $i++) { $pages[$i] = true; } for ($i = max(1, $lastPage - 1); $i <= $lastPage; $i++) { $pages[$i] = true; } } ksort($pages); $elements = []; $lastPageKey = null; foreach (array_keys($pages) as $page) { if ($lastPageKey !== null && $page - $lastPageKey > 1) { $elements[] = '...'; } elseif ($lastPageKey === null && $page > 1) { $elements[] = '...'; } $elements[] = [$page => $paginator->url($page)]; $lastPageKey = $page; } @endphp @endif