2015-09-03 8 views
0

У меня есть данные, поступающие из API, которые я хочу показать результаты для использования разбиения на страницы CakePHP. Все, что я вижу для разбивки на страницы, требует, чтобы объект запроса или модели был передан. Можно ли передать нечто вроде массива данных или общих элементов, текущего элемента и элементов на страницу?CakePHP 3.0 Modelless Pagination

ответ

1

Решение было проще, чем я ожидал. Я смог добавить элемент поискового вызова к параметрам запроса. Компонент разбиения на страницы не нужно касаться вообще.

$data = $Utility->getData(); 
$perPage = 20; 
$count = count($data); 
$page = isset($this->request->query['page']) ? $this->request->query['page'] : 1; 
$offset = $perPage * ($page - 1); 
$pageCount = floor($count/$perPage); 
$this->request->params['paging'] = [ 
    'Messages' => [ 
     'page' => $page, 
     'current' => $offset, 
     'count' => $count, 
     'perPage' => $perPage, 
     'prevPage' => $page != 1, 
     'nextPage' => $page != $pageCount, 
     'pageCount' => $pageCount, 
    ] 
]; 
+0

Больше возможных ключей можно найти в ** https: //github.com/cakephp/cakephp/blob/3.0.12/src/Controller/Component/PaginatorComponent.php#L193** – ndm

+0

Я думаю, что вы следует использовать ceil() вместо floor() при расчете $ pageCount – miro