2009-12-01 229 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>