2010-10-07 5 views
3

Я использую среду Zend некоторое время, но перед лицом проблемы я не могу решить проблему. Я использую Zend_Layout, Zend_View и помощник просмотра URL для создания гиперссылок. Чтобы создать URL-адрес, ориентированный на SEO, я использую следующий код в своем макете.phtml:Zend framework, URL-адрес помощника и макет

<?php echo $this->url(array('module' => 'default', 'controller' => 'contact'), 'contact', true); ?> 

Это прекрасно работает. Ссылка - contact.html (это рассматривается в моей начальной загрузке). Но когда я пытаюсь получить доступ к другой странице, которая не маршрутизирована (у бэкэнд-страниц не требуется URL-адрес SEO) после посещения страницы контактов, Zend автоматически использует текущий маршрут. Для того, чтобы прояснить ситуацию, код я использую, чтобы создать ссылку на страницу, бэкэнд в моем layout.phtml:

<?php echo $this->url(array('module' => 'admin', 'controller' => 'manage'), null, true); ?> 

Второй параметр, нуль, используется, чтобы сообщить помощнику, что маршрут не используется для этой ссылки , Но кажется, что Zend автоматически использует текущий маршрут (маршрут контакта). Как решить эту проблему?

Заранее благодарен!

+2

Как несвязанной ноте, вы должны определить модуль и контроллер в маршрутной конфигурации для маршрута 'contact', то вы можете просто: '$ this-> url (array(), 'contact', true)' –

ответ

7

Используйте параметр 'default' в качестве параметра маршрута. null говорит помощник вида URL, чтобы использовать текущий маршрут не так, как вы думали, нет маршрута

+0

Спасибо, что сделал трюк. Я потратил несколько часов на то, чтобы найти этот ответ, и занял меньше времени на StackOveflow. Хотите узнать, действительно ли это задокументировано Zend. – Martijn

+1

Ну параметр задокументирован в коде: '@param mixed $ name Имя используемого маршрута. Если null, он будет использовать текущий маршрут, поэтому я бы предположил, что он отображается в документации Zend ... – gnarf

Смежные вопросы