嘿,我在navigation.xml中得到了Zend导航,如下所示:
<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>
我已经通过
初始化了我的面包屑$this->navigation()->breadcrumbs()
只要页面在navigation.xml中就可以正常工作,但我想要的是,例如,有一个名为“今日报告”的报告,那么面包屑应该如下所示:Home&gt;报告&gt;今天的报告,换句话说,动态面包屑,有没有办法做到这一点?或者我应该实施自己的?我应该抛弃XML并应该使用数组进行导航,然后全部从数据库动态构建,然后将对象存储到注册表中?但是我再也不希望所有这些出现在导航中,它应该仅用于面包屑。有什么想法吗?
答案 0 :(得分:2)
您需要将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>
今日报告将隐藏到期(0),但要为面包屑启用它们,请使用以下内容: $这 - &GT;导航() - &GT;面包屑() - &GT; setRenderInvisible(TRUE);
您可以从数据库生成导航对象,这在文档中没有解释,但您可以了解如何创建导航对象。 http://framework.zend.com/manual/en/zend.navigation.pages.html
答案 1 :(得分:0)
如果只是面包屑而不是站点地图,不要渲染最后一个元素并使用标题,那么您可能已经在页面上显示:
<?= $this->navigation()->breadcrumbs()->setMinDepth(0) . ' > ' . $this->title ?>
否则,您必须迭代容器并手动执行替换。