Я использую компонент Navigation для меню сайта. Я также использую let zend для определения выбранного пункта меню из параметров запроса - я думаю, это делается автоматически. Единственная проблема заключается в том, что для этого для работы, действия и контроллер должны быть указаны в конфигурации навигации для каждого узла. Это также означает, что, когда zend автоматически генерирует ссылки из маршрута, действия и информации контроллера для добавления к сгенерированной ссылке.Проблема генерации URL-адреса Zend_Navigation
У кого-то была такая же проблема?
Zend manual section, объясняя особенности страницы навигации Mvc.
Пример:
некоторого маршрут определяется в начальной загрузке:
$router->addRoute('user_profile_tab', new Zend_Controller_Router_Route(
'profil/:user/:location/:tab/*',
array(
'action' => 'profile',
'controller' => 'user',
'user' => ($user ? $user->id : 0), //change later
'location' => 0 //inject appropriate value later
)
));
навигация контейнер объект:
$container = .....
......,
array(
'label' => tr('Privileges'),
'id' => 'user-profile-perms',
'type' => 'Zulu_Navigation_Page',
'controller' => 'user',
'action' => 'profile',
'route'=> 'user_profile_tab',
'params' => array('tab'=>Main_Lib_Common::NAVI_USER_TAB_PERMS)
)
);
результата при использовании
$page = $container->getById('user-profile-perms');
$page->href;
http://www.example.com/profil/1/0/3/controller/user/action/profile
ПОЧЕМУ действия и Controler params в объекте навигационного контейнера, который вы запрашиваете. Проверка $ page-> isActive() требует, чтобы эти данные идеально соответствовали друг другу.
FIX:
расширить Mvc страницу навигации и предоставить метод альтернативного getHref() ... тот, который удаляет действия, контроллера и модуля Params, когда маршрут не определяет их.
Можете привести пример? –