Как мне установить страницу пагинатора из контроллера в cakePHP

У меня стандартный бэкэнд cakePHP, но я не использую помощник по разбивке на страницы. Мой существующий интерфейс предоставляет параметры разбивки на страницы в форме «startIndex, numberOfResults» и «page». Было бы здорово, если бы я мог просто проанализировать мои параметры startIndex, numberOfResults, вычислить правильную страницу, а затем сделать что-то вроде:

paginate['page'] = $pageNumber;

перед вызовом paginate (). Нет такой удачи. Итак, мой вопрос: как я могу настроить страницу пагинатора из контроллера? В качестве бонуса: где торт разбирает страницу с именем param? Где хранится значение страницы, используемое для вызова разбиения на страницы?


person GTM    schedule 06.10.2011    source источник
comment
$ this- ›paginate ['страница'] = $ pageNumber; должно работать, должно быть выполнено ДО команды paginate (), также вы можете выполнить разбиение на страницы на лету, чтобы установить некоторые параметры, не касаясь разбивки на страницы, вы также можете изменить переданные аргументы перед его вызовом ... количество результатов контролируется с помощью limit также вы можете переопределить paginate (), paginateCount () в своей модели и делать это как хотите: D, помните, что paginate - это просто поиск ('все'), который вы можете переопределить в соответствии с вашими потребностями в качестве настраиваемого запроса: D и оставьте остальное творить чудеса   -  person api55    schedule 06.10.2011
comment
Изменение $this->params['named']['page'] и $this->paginate['page'] у меня не работает. Думаю ... не касаясь страницы ... может быть мой солн. Никогда не замечал опцию поиска "страницы" до сих пор. Для других - если вы используете опцию поиска «страница», не забудьте также установить «лимит» и «порядок».   -  person GTM    schedule 06.10.2011
comment
К вашему сведению: не уверен, имеет ли это значение, но этот конкретный сайт является сайтом версии 1.2.   -  person GTM    schedule 06.10.2011
comment
Странно, что ни один из них не сработал, если вы опубликуете часть кода, в котором вы выполняете вызов, возможно, мы сможем вам больше помочь: D. Также функция paginate находится в cake / libs / controller / controller.php, я не рекомендую изменять ее там ... в любом случае вы можете переопределить, как он выполняет поиск, с любым параметром, который вы хотите выполнять функцию разбиения на страницы в вашей модели   -  person api55    schedule 06.10.2011


Ответы (1)


Поскольку это приложение 1.2. Попробуйте изменить $this->params['url']['page'] следующим образом:

      $this->params['url']['page'] = $pageNumber;

Источник: CakePHP 1.2.

person pedrostanaka    schedule 15.12.2014