Php ZF:ZEND_导航页面-页面不';无法获得活动状态
我已经生成了如下页面的菜单:Php ZF:ZEND_导航页面-页面不';无法获得活动状态,php,zend-framework,tree,zend-navigation,Php,Zend Framework,Tree,Zend Navigation,我已经生成了如下页面的菜单: $pageSettings = array( 'route' => 'catalog', 'label' => $element->getName(), 'module' => 'default', 'controller' => 'catalog',
$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);
其中,$contentMenuTree
是Zend_导航实例
并在引导中有一个路由:
$router->addRoutes(array(
'catalog' => new Zend_Controller_Router_Route('/catalog/:cat', array('module' => 'default', 'controller' => 'catalog', '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不能自动获取活动页面元素?您的路由器中没有
操作
我想应该是这样
$router->addRoutes(array(
'catalog' => new Zend_Controller_Router_Route('/catalog/:cat',
array('module' => 'default',
'controller' => 'catalog',
'action' => 'index',
'cat' => null))
));
补丁中有什么不起作用?如何设置页面设置?在补丁中,所有设置都工作正常。但是我认为Zend_导航应该在没有这个补丁的情况下工作。你是对的,ZF导航也会处理参数。/catalog/index/cat/xyz行得通吗?在我看来,请参见示例4,因为您做得非常正确。$element->getUrl()是否返回正确的“cat”值<代码>vardump($navigation->toArray())代码>路由器中没有
操作