LengthAwarePaginator $ collection-> lastPage () всегда 1

Я использую Laravel 5.2 и LengthAwarePaginator для разбивки моей коллекции на страницы, все идет хорошо, кроме метода lastPage (), он дает мне 1, как всегда.

Вот мой код:

Я собираю коллекцию с помощью цикла для каждого:

$collection = collect();    
foreach ($rows as $row) {
    $collection->push($row);
}

затем я разбивать на страницы использую:

$collection = $collection->sortBy('id')->forPage($page, $page_limit);
$collection = new LengthAwarePaginator($collection, $collection->count(), $page_limit, $page);
return $collection;

Вот моя информация о разбиении на страницы:

  1. -> currentPage (): 3 (сейчас я на третьей странице)
  2. $ per_page_limit: 8
  3. Всего в коллекции: 77
  4. -> lastPage (): 1 (это проблема)

Мой вопрос: почему -> значение lastPage () всегда равно 1?

Любая помощь будет мне очень полезна.

заранее спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
532
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это связано с тем, что ваш $collection после первой строки будет содержать только 8 элементов, а затем вы передаете его количество в качестве второго аргумента в LengthAwarePaginator, который вернет количество 8 элементов.

В вашем случае я бы сделал следующее:

$all = $collection->sortBy('id');
$chunk = $collection->forPage(3, 8);

$paginator = new LengthAwarePaginator($chunk, $all->count(), 8, 3);

Другие вопросы по теме