我使用導航組件進行網站菜單。我也使用let zend從請求參數中找出選定的菜單項 - 我想這是自動完成的。唯一的問題是,爲了這個工作,必須在每個節點的導航配置中指定動作和控制器。這也意味着當zend從路由,動作和控制器信息中生成鏈接並自動附加到生成的鏈接時。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
WHY動作和CONTROLER時您要求的導航容器對象中的參數。 $ page-> isActive()檢查需要這些數據才能完美匹配。
THE FIX:
延伸MVC導航頁面和提供替代getHref()方法...一個去除動作,控制器和模塊PARAMS當路由沒有定義它們。
你能舉個例子嗎? –