Метод lastPage
Метод lastPage применяется к объекту пагинации
LengthAwarePaginator и возвращает номер последней
доступной страницы. Метод не принимает параметров и
позволяет определить общее количество страниц в наборе
данных на основе общего числа записей и количества элементов
на странице.
Синтаксис
<?php
$lastPage = $paginator->lastPage();
?>
Пример
Давайте получим номер последней страницы для списка статей с пагинацией по 5 элементов на страницу:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::paginate(5);
$lastPage = $articles->lastPage();
echo $lastPage;
}
}
?>
Результат выполнения кода при наличии 12 записей:
"3"
При общем количестве записей 12 и по 5 элементов на странице последней страницей будет номер 3.
Пример
Давайте проверим, находится ли текущая страница на последней, и выведем соответствующее сообщение:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index(Request $request)
{
$page = $request->get('page', 1);
$articles = Article::paginate(10, ['*'], 'page', $page);
$currentPage = $articles->currentPage();
$lastPage = $articles->lastPage();
if ($currentPage == $lastPage) {
echo "You are on the last page";
} else {
echo "You are on page " . $currentPage . " of " . $lastPage;
}
}
}
?>
Результат выполнения кода при нахождении на последней странице:
"You are on the last page"
Результат выполнения кода при нахождении на первой странице:
"You are on page 1 of 3"
Пример
Давайте используем метод lastPage для построения
кастомной навигации с отображением всего диапазона страниц:
@php
$totalPages = $articles->lastPage();
$currentPage = $articles->currentPage();
@endphp
<div class="pagination">
@for ($i = 1; $i <= $totalPages; $i++)
<a href="?page={{ $i }}"
class="{{ $i == $currentPage ? 'active' : '' }}">
{{ $i }}
</a>
@endfor
</div>
Результат выполнения кода для 5 страниц при нахождении на 3-й:
<div class="pagination">
<a href="?page=1">1</a>
<a href="?page=2">2</a>
<a href="?page=3" class="active">3</a>
<a href="?page=4">4</a>
<a href="?page=5">5</a>
</div>
Смотрите также
-
метод
currentPage,
который возвращает номер текущей страницы -
метод
onLastPage,
который проверяет нахождение на последней странице -
метод
total,
который возвращает общее количество записей -
метод
withQueryString,
который сохраняет параметры запроса при пагинации