Как передать параметры пагинации с дополнительными параметрами cakephp?

У меня есть список категорий, в котором отображается список элементов под ним.

Таким образом:

маршруты имеют:

Router::connect('/category/:slug', array('controller' => 'Product',
             'action'=>'catview', 'slug'=> '[0-9a-zA-Z]+'));
Router::connect('/category/:slug/:page', array('controller' => 'Product',
             'action'=>'catview','slug'=> '[0-9a-zA-Z]+','page'=>'[0-9]+'));

и

когда я делаю это на странице результатов, это просто не работает:

<?php 
        $slug = $this->params['slug'];
        $this->Paginator->options(array('url'=> array('controller' => 'Product',
                             'action'=>'catview','slug'=> $slug)));

        echo $this->Paginator->prev('<< Show me previous', array('class'=>'prev'))
        . $this->Paginator->next('Show me more >>', array('class'=>'next')); ?>

Это не меняет результаты, показывает тот же результат, что и на странице 1.

Есть идеи, где я ошибаюсь?


person Karma    schedule 28.07.2013    source источник
comment
на какой URL указывают следующая/предыдущая ссылки? IME вам лучше использовать параметры получения для переменных разбиения на страницы.   -  person AD7six    schedule 28.07.2013
comment
Они показывают /:slug/:page как в /Calculators/2   -  person Karma    schedule 28.07.2013
comment
/Calculators/2 не соответствует ни одному из маршрутов в вопросе.   -  person AD7six    schedule 28.07.2013
comment
@ AD7six, не могли бы вы пролить свет на получение параметров для переменных разбивки на страницы ?? PS: меня не волнует, выглядит ли URL уродливо. Мне просто нужны правильные результаты, но я должен указать URL $this-›paginate-›options, потому что я использую слаг, иначе он перенаправляется на /controller/action/:page   -  person Karma    schedule 28.07.2013
comment
с использованием параметров получения для разбиение на страницы И, пожалуйста, отмечайте свой вопрос только той версией торта, которую вы используете — 2.0 или 2.3?   -  person AD7six    schedule 28.07.2013
comment
Сменить тег. В порядке. Плохо, я имел в виду, что это дает мне /category/Calculators/2   -  person Karma    schedule 28.07.2013
comment
Спасибо за ссылку. Я не совсем понимаю. Можете ли вы сформулировать ответ, если знаете решение, пожалуйста?   -  person Karma    schedule 28.07.2013


Ответы (1)


Спасибо AD7six за ссылку.

Мой контроллер должен иметь:

$this->paginate = array(
 //other stuff here
 'paramType' => 'querystring'
);

С последующим:

$this->Paginator->options(array('url'=> array('controller' => 'Product',
                                  'action'=>'catview','slug'=> $slug),
                                     'convertKeys' => array('page')));

в файле просмотра

person Karma    schedule 28.07.2013