ZF:ZEND_NAVIGATION_PAGE-页面未处于活动状态

问题描述

|| 我已经生成了带有如下页面菜单
$pageSettings = array(
                    \'route\'      => \'catalog\',\'label\'      => $element->getName(),\'module\'     => \'default\',\'controller\' => \'catalog\',\'action\'     => \'index\',\'params\'     => array(\'cat\' => $element->getUrl()),\'order\'      => $element->getorder(),\'id\'         => \'catalogID_\' . $element->getId(),);

$contentMenuTree->addPage($pageSettings);
其中“ 1”是Zend_Navigation实例。 并在引导程序中有一条路线:
$router->addRoutes(array(            
    \'catalog\'  => new Zend_Controller_Router_Route(\'/catalog/:cat\',array(\'module\' => \'default\',\'index\' => \'index\',\'cat\' => null))
));
如果我呼叫site.ru/catalog/test,则$ contentMenuTree中没有活动页面。 所以我找到了补丁,但似乎不正确:
$front = Zend_Controller_Front::getInstance();
$action = $front->getRequest()->getActionName();
$cat    = $front->getRequest()->getParam(\'cat\');
$module = $front->getRequest()->getModuleName();
$controller = $front->getRequest()->getControllerName();

if ($controller == \'catalog\' && $module == \'default\' 
             && $action == \'index\' && $cat==$element->getUrl())
                        $pageSettings[\'active\'] = true;
为什么zend_navigation不会自动获得活动页面元素?     

解决方法

        您的路由器中没有
action
我认为应该
$router->addRoutes(array(            
    \'catalog\'  => new Zend_Controller_Router_Route(\'/catalog/:cat\',array(\'module\' => \'default\',\'controller\' => \'catalog\',\'action\' => \'index\',\'cat\' => null))
));