在Zend Framework 2中我使用ZendNavigation作为主导航和面包屑导航。我希望Breadcrumb-Navigation能够显示在每个页面上,但我不希望每个页面都显示在主导航栏中。ZF2导航:如何仅在面包屑导航中显示一些页面
换言之,我想要一些页面在面包屑导航中仅显示。
有什么办法可以达到这个目的吗?也许可以在导航数组中设置一个选项?或者我需要创建两个不同的导航,并使用一个作为主导航,另一个作为面包屑?
在Zend Framework 2中我使用ZendNavigation作为主导航和面包屑导航。我希望Breadcrumb-Navigation能够显示在每个页面上,但我不希望每个页面都显示在主导航栏中。ZF2导航:如何仅在面包屑导航中显示一些页面
换言之,我想要一些页面在面包屑导航中仅显示。
有什么办法可以达到这个目的吗?也许可以在导航数组中设置一个选项?或者我需要创建两个不同的导航,并使用一个作为主导航,另一个作为面包屑?
编辑
它并没有真正意义复制的“页”配置您可以指示视图助手来呈现你所需要的。因此,您可以使用相同的导航容器呈现不同的菜单(例如面包屑vs主导航)。
您可以通过using the provided breadcrumb methods(如setMaxDepth()
或setMinDepth()
)来完成此操作。或者,为了获得更大的灵活性,请使用下面解释的部分视图。
在每种情况下,您只需将整个容器过滤到要呈现的选区中即可。
您可以使用view partial to render the breadcrumbs。
该方法将找到最深的活动页面,并将导致活动页面的页面数组传递给部分视图脚本。
所附链接使用array_map
渲染的$this->pages
内容的例子,但是你可以实现与环相同的结果。
foreach($this->pages as $page) {
printf('<a href="%s">%s</a>', $page->getHref(), $page->getLabel());
}
但是请记住,你现在需要手动检查网页的可访问当前用户,如果您使用的是ACL - 这可以通过使用methods available for MVC or URL pages
谢谢您的回答做,但那不完全是我的问题。我的面包屑导航正在渲染和工作。 我不知道如何仅在面包屑导航中显示某些页面,而仅在主导航中显示其他页面。现在我的所有页面都显示在两个导航栏中。 例如:我想我的主菜单只包含页面“Admin”,没有子页面。但在我的面包屑导航,我需要指定所有的子页面,如“管理 - >用户”等 – Patito
我已更新澄清 – AlexP
我希望有一个更方便的解决方案,但这可能是处理此问题的最佳方法。谢谢你的帮助! – Patito