Итак, я работаю над системой разбиения на страницы, которая извлекает данные извне, после того, как, наконец, выяснив проб и ошибок, я получил решение, которое работает. Пройдя через него, что-то показалось мне странным, как в документации $paginator = Paginator::make($items, $totalItems, $perPage);
Мне было интересно, что в действительности используется параметр $perPage
? Вы могли бы подумать, что то, что указано в каждом номере, покажет, что многие предметы. Но с ручной разбивкой на страницы вам нужно ограничить результаты, которые передаются в $items
, чтобы он работал, иначе вы получите вывод всех элементов (как показано ниже в коде). Исправлена ли ручная разбивка на страницы? потому что если $perPage
не соответствует общему количеству элементов в массиве $items
, он показывает все.
Пример: Paginator::make(array('10xarray')), 10, 2);
Показать 5 страниц с 2 элементами на странице? где на самом деле на самом деле он показывает 10 предметов с 5 страницами, на которых показаны все те же 10 предметов.
<?php
class MainController extends BaseController {
public function library()
{
$this->layout->title = 'testing';
$this->layout->main = View::make('library/layout');
// Pagination data
$media = array(
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test'),
array('title' => 'test')
);
$perPage = 2;
$currentPage = Input::get('page', 1);
$pagedData = array_slice($media, ($currentPage - 1) * $perPage, $perPage);
$this->layout->main->paginated = Paginator::make($pagedData, count($media), $perPage);
if(Request::ajax()) {
return Response::json(
View::make(
'library/layout',
array('paginated' => $this->layout->main->paginated)
)->render()
);
}
}
}
В соответствии с заголовком вопроса '$ perPage' не влияет на разбиение на страницы, кроме простого отображения номеров страниц. Единственный раз, когда он работает, как следует, это то же самое число, что и '$ items', что вызывает вопрос:« Почему он там? когда это просто 'count ($ items)' – Bankzilla
, потому что laravel вычисляет количество страниц путем деления общего количества данных на этот '$ perPage' (также равный' $ item', который вы ссылаетесь). Они __Must__ будут такими же. Основная ответственность за разбиение на страницы - это создание ссылок на страницы, __NOT__ выборка данных из базы данных. 2-я часть, является ответственностью программиста. – itachi
Я уже понимаю все это, в том числе варианты использования разбивки на страницы, точка, которую я пытаюсь выяснить, может ли «$ perPages» быть сброшена вместе. Если каждый раз, когда он ** должен ** быть равен счету '$ items', тогда это не обязательно, и поскольку, если вы добавите какой-либо другой номер, он сломает его ... если нет другого варианта использования, который не имеет были упомянуты. – Bankzilla