Php Zend framework动态面包屑标签

Php Zend framework动态面包屑标签,php,zend-framework,Php,Zend Framework,嘿,我在navigation.xml中找到了Zend navigation,如下所示: <nav> <home> <label>Home</label> <controller>index</controller> <resource>index</resource> <action>index</action&

嘿,我在navigation.xml中找到了Zend navigation,如下所示:

<nav>
    <home>
        <label>Home</label>
        <controller>index</controller>
        <resource>index</resource>
        <action>index</action>
        <pages>
            <Reports>
                <label>Reports</label>
                    <controller>Reports</controller>
                    <resource>Reports</resource>
                    <action>index</action>
            </Reports>
        </pages>
    </home>
</nav>

就navigation.xml中的页面而言,这很好,但我想要的是,例如,有一个名为“Today Report”的报告,那么面包屑应该是:Home>Reports>Today's Report,换句话说,动态面包屑,是否已经有了这样的方法?还是我应该实现我自己的?我是否应该抛弃XML,使用数组进行导航,然后全部从数据库动态构建,然后将对象存储到注册表中?但我不希望所有这些都出现在导航中,它应该只用于面包屑。有什么想法吗

您需要将xml更改为以下内容:

<nav>
    <home>
        <label>Home</label>
        <controller>index</controller>
        <resource>index</resource>
        <action>index</action>
        <pages>
            <Reports>
                <label>Reports</label>
                <controller>Reports</controller>
                <resource>Reports</resource>
                <action>index</action>
                <pages>
                    <TodayReport>
                        <label>Today Report</label>
                        <controller>Reports</controller>
                        <action>today-report</action>
                                            <visible>0</visible>
                    </TodayReport>
                </pages>
            </Reports>
        </pages>
    </home> </nav>

家
指数
指数

如果只是面包屑,而不是站点地图,请不要呈现最后一个元素并使用标题,您可能已经在页面上显示:

<?= $this->navigation()->breadcrumbs()->setMinDepth(0) . ' > ' . $this->title ?>


否则,您必须迭代容器并手动执行替换。

Awesome!这正是我遇到的问题。我想从主导航中隐藏该选项,让页面显示在我的站点地图中,但也包括页面上的面包屑(直到现在才被隐藏)。谢谢
<?= $this->navigation()->breadcrumbs()->setMinDepth(0) . ' > ' . $this->title ?>