Пагинация Laravel не работает с массивом вместо коллекции
Я пытаюсь разбить набор данных на массивы, и он оказался более сложным, чем я думал.
Я использую Laravel 5
Итак, у меня есть абстрактный интерфейс / репозиторий, на который распространяются все остальные мои модели, и я создал метод внутри своего абстрактного вызова репозитория paginate. Я включил оба
use Illuminate\Pagination\Paginator;
а также
use Illuminate\Pagination\LengthAwarePaginator;
Вот метод
public function paginate($items,$perPage,$pageStart=1)
{
// Start displaying items from this number;
$offSet = ($pageStart * $perPage) - $perPage;
// Get only the items you need using array_slice
$itemsForCurrentPage = array_slice($items, $offSet, $perPage, true);
return new LengthAwarePaginator($itemsForCurrentPage, count($items), $perPage,Paginator::resolveCurrentPage(), array('path' => Paginator::resolveCurrentPath()));
}
Итак, как вы можете себе представить, эта функция принимает массив$items
a $perPage
переменная, которая указывает, сколько элементов для разбивки на страницы и$pageStart
это указывает, с какой страницы начать.
Нумерация страниц работает и я вижуLengthAwarePaginator
случай, когда я делаюdd()
все его значения кажутся нормальными.
Проблема начинается, когда я показываю результаты.
Когда я делаю{!! $instances->render() !!}
Пагинатор ссылки в порядке,page
параметр изменяется по ссылкам, но данные не меняются. Данные одинаковы на каждой странице. Когда я использую Eloquent, например,Model::paginate(3)
все работает нормально, но когда яdd()
этотLengthAwarePaginator
это идентичноLengthAwarePaginator
Экземпляр моего пользовательского paginator за исключением того, что он разбивает на страницы массив конечно, а не коллекцию.