У меня есть пользовательский массив, как:
[business] => Array
(
[55] => Array
(
[id] => 1
[name] => abc
[contact] => 1325467897
),
[96] => Array
(
[id] => 5
[name] => xyz
[contact] => 9876543210
)
)
Этот массив получен из условных (если-еще) нескольких запросов. Итак, я просто хочу добавить нумерацию страниц в массиве. Может кто-нибудь предложить мне, как добавить пользовательскую нумерацию страниц в этот тип массива, используя стандартный пагинатор CakePHP 3.
PaginatorComponent может взять Cake\ORM\Query
так как это нужно разбить на страницы, я бы посоветовал передать ваш скомпилированный объект запроса в paginator.
Таким образом, в вашем контроллере вы можете сделать что-то вроде следующего.
public function example()
{
$this->paginate = ['limit' => 5];
$query = $this->Examples->find();
if ($something === 'foo') {
$query->where(['foo' => $something]);
}
if ($wtfbbq) {
$query->contain(['Wtfs', 'Barbeques']);
}
$results = $this->paginate($query);
}
Это произведет Cake\ORM\Query
с встроенной нумерацией страниц. Затем вы можете настроить параметры нумерации страниц по своему усмотрению, проверяя страницу книги на Paginator.
Других решений пока нет …