2011-03-29 35 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