Создание пользовательского CagePHP Pagination Route

Я пытаюсь использовать Ajax pagination в CakePHP и прочитал, что вы можете передавать переменные вместе с URL-адресом, однако я не могу настроить маршрут. Когда я нажимаю дальше, я получаю сообщение об ошибке, связанной с отсутствующей категорией (из-за специального метода проверки, который я создал), поскольку маршрут не выполняется.

Я хотел бы, чтобы $paginator->next() и $paginator->prev() эту схему маршрутов http://mysite.com/computers/page:2 или http://mysite.com/computers/mac/page:2 . Однако, независимо от того, что я установил для него URL-адрес страницы, вы всегда становитесь http://mysite.com/Products/index/page:2 . Я попытался установить URL-адрес в $paginator->options() и в $paginator->next() и $paginator->prev() однако он не работает. Любые идеи о том, как сделать paginator cakephp, следуют моим обычным маршрутам?

Редактировать:

Вот мой код $ paginator, который находится в представлении.

 $paginator->options(array( 'update' => '#products', 'url' => array('controller'=>'Products','action'=>'index','pass'=>$this->params['pass']), 'evalScripts' => true, 'before' => $this->Js->get('#busy-indicator')->effect('fadeIn', array('buffer' => false)), 'complete' => $this->Js->get('#busy-indicator')->effect('fadeOut', array('buffer' => false)), )); echo $paginator->prev("Prev",$this->passedArgs); echo $paginator->numbers(array('separator'=>' ')); echo $paginator->next("Next",$this->passedArgs); 

Solutions Collecting From Web of "Создание пользовательского CagePHP Pagination Route"

Я понял. Я вижу, что кто-то одобрил это, поэтому я покажу свое решение в надежде, что он сэкономит им несколько дней разочарования, пытаясь найти исправление.

В моем index.ctp я задал путь $ paginator-> options к моему url, который мне нужен.

 $paginator->options(array( 'update' => '#products', 'url' => array('path'=>$this->params['path']), 'evalScripts' => true, 'before' => $this->Js->get('#busy-indicator')->effect('fadeIn', array('buffer' => false)), 'complete' => $this->Js->get('#busy-indicator')->effect('fadeOut', array('buffer' => false)), )); 

Редактировать: я только что узнал, что это работает, только если вы не добавили ничего в поле url … 🙁

Редактирование 2: Я закончил тем, что должен был сделать это, на мой взгляд, где создается $ pagination.

 $paginator->options(array( 'update' => '#products', 'url' => '/'.$this->here, //'evalScripts' => true, 'before' => $this->Js->get('.clothing')->effect('fadeOut', array('speed' => 'slow')), 'complete' => $this->Js->get('.clothing')->effect('fadeIn', array('speed' => 'slow')), )); echo str_replace('/Products/index','',$paginator->prev("Prev ")); echo str_replace('/Products/index','',$paginator->numbers(array('separator'=>' - '))); echo str_replace('/Products/index','',$paginator->next(" Next")); 

Если вы зададите параметры paginator, он должен сделать трюк. Попробуй это:

 $options = array('update'=>'results','url'=> array('controller' => 'companies', 'action' => 'dashboard', 'admin' => true)); $paginator->options($options); 

Это прекрасно работает для меня везде.

FYI, я использую параметр update для jQuery для обновления различных областей.