2009-12-01 77 views
3

我仍然是Zend Framework的新手,所以請原諒我,如果這是一個愚蠢的問題!在麪包屑中傳遞參數

我在我的應用程序的主佈局中使用麪包屑視圖助手來提供通常的麪包屑功能。不過,我真的需要麪包屑來包含傳遞給用戶點擊的操作的參數...所以如果你點擊「/ controller/parent/id/1」到「/ controller/child/id/2「子頁面上的麪包屑應該鏈接回」/ controller/parent/id/1「而不僅僅是」/ controller/parent /「

我有什麼選擇?我是否需要用我的數據庫的全部內容構建我的Zend_Navigation樹,以便爲每個動作都提供每個可能的ID?或者我可以編寫自己的幫助器,在麪包屑呈現時將額外的參數添加到Zend_Navigation_Page對象中?

第一個選項似乎是阻力最小的路徑,但感覺效率很低!雖然,我想這可以通過延遲加載來減少內存使用量。

感謝您的幫助!

湯姆

回答

2

我認爲答案是使用reset_params您navigation.xml

裏面裏面你的頁面,你需要設置reset_params = 0這樣的:

<reset_params>0</reset_params> 

參見:http://framework.zend.com/manual/en/zend.navigation.pages.html

例如在我們的應用程序中,我們使用類似這樣的東西:

<config> 
<nav> 
    <fsms> 
     <label>Home</label> 
     <module>default</module> 
     <controller>index</controller> 
     <action>index</action> 
     <pages> 
      <!-- Cases --> 
      <page_case> 
       <label>Case</label> 
       <module>case</module> 
       <controller>details</controller> 
       <action>index</action> 
       <reset_params>0</reset_params> 
       <pages> 
        <!-- Case Creation --> 
        <page_case_create> 
         <label>Creation</label> 
         <module>case</module> 
         <controller>create</controller> 
         <action>index</action> 
        </page_case_create> 
       </pages> 
      </page_case> 
     </pages> 
    </fsms> 
</nav>