Я пытаюсь разработать пользовательскую нумерацию страниц для таблиц, которые будут составлены с использованием Livewire, и существует определенный c способ, которым клиент хочет отображать нумерацию страниц. Некоторые из приведенного ниже кода неверны из-за того, что у меня возникла проблема, заставляющая задуматься о многих ситуациях. Тем не менее, я бы с радостью принял предложения о том, что мне нужно добавить, удалить, рефакторинг.
Допустим, в настоящее время в этом страничном устройстве загружено 13 страниц, и по умолчанию будет страница 1. Небольшая таблица ниже демонстрирует, как я пытаюсь получить правильные номера страниц для отображения на странице.
Page Loaded Page Numbers Visible
1 1, 2, 3, 4, 5, 13
2 1, 2, 3, 4, 5, 13
3 1, 2, 3, 4, 5, 13
4 1, 2, 3, 4, 5, 13
5 1, 4, 5, 6, 13
6 1, 5, 6, 7, 13
7 1, 6, 7, 8, 13
8 1, 7, 8, 9, 13
9 1, 8, 9, 10, 13
10 1, 9, 10, 11, 12, 13
11 1, 9, 10, 11, 12, 13
12 1, 9, 10, 11, 12, 13
13 1, 9, 10, 11, 12, 13
@if (
$page > $paginator->lastPage() - 1 ||
$page == $paginator->onFirstPage() + 1 ||
$page == $paginator->currentPage() + 1 ||
$page == $paginator->currentPage() - 1 ||
$page <= $paginator->onFirstPage() + 5 ||
$paginator->currentPage() >= $paginator->lastPage() - 5 ||
($page < $paginator->onFirstPage() + 5 && $paginator->currentPage() + 1 > $page)
)
{
// show page number
}