在面包屑中传递参数

时间:2009-12-01 15:22:12

标签: php zend-framework breadcrumbs

我仍然是Zend Framework的新手,所以请原谅我这是一个愚蠢的问题!

我在应用程序的主布局中使用breadcrumbs视图助手来提供通常的痕迹导航功能。但是我真的需要面包屑来包含传递给用户点击的动作的参数......

因此,如果您从“/ controller / parent / id / 1”点击到“/ controller / child / id / 2”,子页面上的痕迹应链接回“/ controller / parent / id / 1”而不仅仅是“/ controller / parent /”

我有什么选择?我是否需要使用数据库的全部内容构建Zend_Navigation树,以便为每个操作提供每个可能的ID?或者,我可以编写自己的帮助程序,在呈现面包屑时将额外的参数添加到Zend_Navigation_Page对象中吗?

第一种选择似乎是阻力最小的路径,但感觉非常低效!虽然,我想这可以通过延迟加载来减少内存使用量。

感谢您的帮助!

汤姆

1 个答案:

答案 0 :(得分:2)

我认为答案是使用navigation.xml中的reset_params

在您的页面中,您需要设置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>