2011-03-29 37 views
0

通常,我在Zend_Navigation的configs文件夹中有一个导航文件menu.xml。模块中的Zend Framework menu.xml引发异常

现在,当我把它放在模块/模块名/ CONFIGS /我的错误:

节“生产”不能在/blah/blah/blah/menu.xml找到。

我明白[production]是配置ini文件的部分,我是否也需要它在xml中?我错过了真正明显的东西吗?我怎么能在模块目录中有导航xml文件(以保持模块独立)?

回答

0

好吧,这是我不得不做的工作。一切都基于试验/错误,我不知道为什么它必须是这种方式,而不是“正常”的方式(就像没有模块一样)。

文件必须有一个生产节点,它必须用于配置用于Zend_Navigation模块的bootstrap.php中:

$config = new Zend_Config_Xml(APPLICATION_PATH . '/modules/default/configs/navigation.xml', 'production'); 
$container = new Zend_Navigation($config); 

XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<configdata> 
    <production>   
      <page1> 
       <label>My page 1</label> 
       <controller>page</controller> 
       <action>index</action> 
      </page1> 
<!-- more pages here --> 
    </production> 
</configdata> 

我不知道为什么它必须是这样(或者有可能以任何其他方式),所以如果你知道它,如果你在评论中告诉它,我会很感激的)

+0

删除'production'f从Zend_Config_Xml调用 – Ashley 2011-03-29 13:50:00

+0

我不能,因为生产是需要调用菜单的节点。如果我重命名该节点,ZF立即抱怨没有找到“生产”(按照原始问题)。注意,这个“缺少生产部分”的错误出现在Zend_Config_Xml被调用之前,可能ZF事先解析它在Configs目录中找到的每个文件,以检查它们是否有'生产'部分。 – Sejanus 2011-03-29 14:19:01

+0

这很奇怪。我有我的导航部分定义为“导航”,它可以很好地与这个调用:$ config = new Zend_Config_Xml(APPLICATION_PATH。'/configs/navigation.xml','nav'); 只要Zend_Config_Xml函数中的第二个参数是节点的名称,你应该没问题。如果你通过它'生产',那么它会寻找生产,如果你通过'foobar'它会寻找foobar。 – Clint 2011-03-29 15:25:01