Zend url view helper - сохранение существующих параметров в обратном направлении - PullRequest
0 голосов
/ 12 июня 2009

На данный момент в моем проекте ZF есть структура URL, подобная этой:

/news/index/news_page/1/blog_page/2

Когда я генерирую свою нумерацию страниц, я использую URL-помощник следующим образом:

<?php echo $this->url(array('blog_page'=>3)); ?>

, который генерирует URL-адрес, подобный следующему:

/news/index/news_page/1/blog_page/3

То, что я хотел бы сделать, - это использовать собственный маршрут, чтобы получить более приятные URL-адреса, например:

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index')
);

Однако, когда я пытаюсь использовать этот маршрут в помощнике вида:

<?php echo $this->url(array('blog_page'=>3), 'newsIndex'); ?>

Выдает ошибку, потому что я не указал в параметрах страницу новостей.

Как я могу обойти это и попросить помощника URL использовать «текущие» значения для этих параметров?

1 Ответ

6 голосов
/ 13 июня 2009

Помощник по URL будет использовать существующий параметр, если он существует в текущем запросе. Похоже, что в вашем конкретном случае параметр news_page не установлен в объекте запроса. Установка значения по умолчанию для параметра news_page в вашем маршруте должна решить вашу проблему.

Итак, ваше определение маршрута должно выглядеть примерно так:

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index', 'news_page' => 1)
);
...