CakePHP: нумерация страниц и пользовательские маршруты

Кажется, я не могу использовать собственный маршрут с нумерацией страниц. URL-адрес блога должен быть http://www.domain.com/en/page:2. Однако ссылки, сгенерированные PaginateHelper (предыдущая и следующая), продолжают добавлять контроллер и действие, так что URL-адрес выглядит как http://www.domain.com/posts/index/en/page:2.

Конфигурация маршрута довольно проста:

Router::connect(
    '/:lang/*',
    array(
        'controller' => 'posts',
        'action' => 'index'
    ),
    array(
        'lang' => '[a-z]{2}',
        'pass' => array(
            'lang'
        )
    )
);

Я установил это в представлении:

$paginator->options(
    array(
        'url' => $this->passedArgs
    )
);

а также указать путь вручную, не используя массив

это происходит с тортом 1.33

Любая помощь будет принята с благодарностью!


person harpax    schedule 26.08.2010    source источник


Ответы (1)


Похоже, что предыдущий и следующий метод помощника Paginator не использует параметры по умолчанию. Вот почему

$paginator->options(
    array(
        'url' => $this->passedArgs
    )
);

не работает. Вы можете установить его на предыдущий и следующий метод напрямую. Например:

$paginator->prev('<< Previous', array('url' => $this->passedArgs));

Надеюсь, что поможет.

person Jamal Aziz    schedule 26.08.2010
comment
Спасибо за Ваш ответ! К сожалению, это не решило мою проблему (все то же самое: Cake продолжает добавлять контроллер + действие к URL-адресу, где этого не должно быть). Я буду отслеживать это в ближайшие дни. - person harpax; 30.08.2010
comment
аааа.. Я нашел это: passArgs содержал только переменную lang. Когда я добавил контроллер и действие в индекс, он сработал. Еще раз спасибо - person harpax; 21.09.2010
comment
@harpax Как вы решили проблему, можете ли вы поделиться этим в качестве ответа, пожалуйста? - person Rinto George; 29.03.2012