Zend создал маршрут и теперь все ссылки используют этот URL
Я создал маршрут для просмотра профилей пользователей:
$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route(
'profile/:username',
array(
'username' => 'username',
'module' => 'core',
'controller' => 'profile',
'action' => 'view'
)
);
$router->addRoute('profile',$route);
Когда я захожу туда, все URL-адреса на странице все теперь говорят http://127.0.0.1/project/public/profile.
Как это исправить?
2 ответа
Решение
При использовании Url
посмотреть помощник или Zend_Navigation
, вам нужно указать маршрут для использования, если вы не хотите, чтобы он использовал текущий. Например...
URL помощник просмотра
Используйте маршрут по умолчанию
<?php echo $this->url(array(
'action' => 'index',
'controller' => 'index'
), 'default', true) ?>
Конфигурация навигации
resources.navigation.pages.home.label = "Home"
resources.navigation.pages.home.action = "index"
resources.navigation.pages.home.controller = "index"
resources.navigation.pages.home.module = "default"
; Don't forget to set the route
resources.navigation.pages.home.route = "default"
добавление
Самый простой способ настройки маршрутов - через ресурс Router. Попробуйте это в вашей конфигурации вместо кода, который у вас есть
resources.router.routes.profile.route = "profile/:username"
resources.router.routes.profile.defaults.module = "core"
resources.router.routes.profile.defaults.controller = "profile"
resources.router.routes.profile.defaults.action = "view"
Спасибо, Фил! У меня была такая же проблема, и ты спас меня;)
Просто для информации, для людей, которые используют структуру XML для Zend Navigation, просто добавьте для каждого маршрута.
Например:
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<myfirstroute>
<label>...</label>
<module>...</module>
<controller>...</controller>
<action>...</action>
**<route>default</route>**
</myfirstroute>
<mysecondroute>
<label>...</label>
<module>...</module>
<controller>...</controller>
<action>...</action>
**<route>default</route>**
</mysecondroute>
...
</nav>
</configdata>
Увидимся!