我有一个 navigation.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<nav>
<programm_nav>
<label></label>
<uri>#</uri>
<pages>
<all>
<label>test1</label>
<resource>default:programme</resource>
<module>default</module>
<controller>programme</controller>
<action>list</action>
<privilege>index</privilege>
</all>
</pages>
</programm_nav>
<acc_nav>
<label></label>
<uri>#</uri>
<pages>
<ueb>
<label>test2</label>
<resource>default:account</resource>
<module>default</module>
<controller>account</controller>
<action>index</action>
<privilege>index</privilege>
</ueb>
</pages>
</acc_nav>
</nav>
</config>
这个配置文件定义了两个导航框,一个是programm_nav,另一个是acc_nav。
在我的 Bootstrap 中,我执行以下操作:
$navContainerConfig = new Zend_Config_Xml ( APPLICATION_PATH .
'/configs/navigation.xml', 'nav');
$navContainer = new Zend_Navigation ( $navContainerConfig );
$view->navigation ( $navContainer )->setAcl ( $this->_acl )
->setRole ( Zend_Registry::get ( 'role' ) );
在我看来,我显示导航:
$navSec = $this->navigation ()->findOneByLabel ( 'acc_nav' );
echo $this->navigation ()->menu ()->renderMenu ( $navSec );
但无论我如何定义 $navSec
,我总是显示 programm_nav
而不是另一个框。 acc_nav
永远不会显示。
有什么想法吗?
最佳答案
findOneByLabel('acc_nav');
将在 <label>
中搜索文本-tags 因为没有 acc_nav 值。它不会找到它。
关于php - Zend Navigation - 各种导航 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777196/