Я использую помощник pagination CakePHP с настраиваемым маршрутом, однако он, кажется, игнорирует номер страницы. Я считаю, что это происходит потому, что названный параметр page
не существует в запросе, который я верифицированный с помощью debug($this->request->params);
:Невозможно установить именованный параметр с помощью CakePHP
array(
'plugin' => null,
'controller' => 'things',
'action' => 'index',
'named' => array(),
'pass' => array(),
'page' => '2'
)
Как вы можете видеть, это положить page
за пределы named
массива. Это маршрут, я определил для пользовательских постраничной URL-адресов:
Router::connect('/things/:page', array('controller' => 'skins', 'action' => 'index'), array('page' => '[0-9]+'));
Очевидно, это означает, что независимо от того, что номер страницы я нажимаю на только первые результаты показывают.
Как изменить маршрут, чтобы правильно вставить страницу в именованный массив параметров? Я бы предпочел не напрямую изменять $this->request->params['named']
с контроллера напрямую.
Я попробовал, что уже с 'Router :: connectNamed (массив ('page')); ', однако это не повлияло. Кроме того, эта часть документов также говорит, что вы можете настроить ее по принципу маршрута, что я и сделал в фрагменте кода в моем исходном сообщении. –
Код, который у вас есть в вашем исходном сообщении, не имеет ничего общего с именованными параметрами - это просто повторное выражение для другого (неименованного) параметра. – Dave