2016-02-24 4 views
1

Я пытаюсь использовать класс paginate в CakePhp, имеющий результаты запроса, созданные пользовательским методом, а не традиционным способом CakePHP.CakePHP Pagination on array variable

В конце у меня есть массив.

Я стараюсь применять разбивать на страницы в этом массиве, но не видел его постраничного:

$myArray = $this->myModel->SearchDatabaseData(); $myArray = $this->paginate('myModel');

Запрос сделан в компоненте, так что претензии к модели, например, вместо PaginatorComponent::validateSort() must be an instance of Model, instance of VerificacaoComponent given

Могу ли я использовать pagination CakePHP в настраиваемом массиве?

Я использую CakePhp 2.5.

ответ

1

Вам нужно использовать Cakephp Custom pagination. Для этого требуется 2 функции в вашей модели: одна с запросом сама и другая с запросом на подсчет с теми же условиями.

Когда вы пытаетесь разбивать на страницы в своей модели, CakePhp имеет 2 глобальных функции в основном AppModel, в основном вы будете переопределять эти 2 функции, переписывая их в вашей модели.

Эти функции являются: постраничной() и paginateCount()

После того, как переопределить функции AppModel с пользовательской версии в вашей модели, вы можете использовать регулярные $ this-> YourModelName-> постраничной(); в вашем контроллере.

Вы можете найти примеры в этом StackOverflow вопрос: Custom Query Pagination Cakephp

Вы можете проверить оригинальную документацию здесь: http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#custom-query-pagination