Navigation 有没有可能在SilverStripe菜单中找到孩子的孩子?
我在SilverStripe 3.1模板中整合了一个三层导航菜单,模板中有以下代码:Navigation 有没有可能在SilverStripe菜单中找到孩子的孩子?,navigation,silverstripe,template-variables,Navigation,Silverstripe,Template Variables,我在SilverStripe 3.1模板中整合了一个三层导航菜单,模板中有以下代码: <% loop $Menu(1) %> ... <% loop $Children %> ... <% loop $Children %> <li><a href="$Link">$Model</a></li> <% end_loop %> <% end_loop %>
<% loop $Menu(1) %>
...
<% loop $Children %>
...
<% loop $Children %>
<li><a href="$Link">$Model</a></li>
<% end_loop %>
<% end_loop %>
<% end_loop %>
...
...
然而,我没有从第三层得到我期望的输出。真的有可能得到孩子中的孩子吗?如果没有,我该怎么办?谢谢 是的,可以在子循环的子循环中循环 你的代码在我看来是正确的。它应该能正常工作 这里有一些可能的问题需要检查 确保每个级别的所有页面都将
ShowInMenus
设置为true$Children
和$Menu(1)
仅返回ShowInMenus
设置为true的页面。此复选框可在任何页面的“设置”选项卡中找到。否则,您也可以使用$AllChildren
而不是$Children
来获取隐藏页面
确保站点树的页面深度为3级。这显然是一件需要检查的事情
$Model
不是内置页面变量。这必须是您设置的自定义变量。确保已将其设置为页面、已填入值且可在前端访问
下面是一些测试模板代码,可用于检查站点树的输出。这可能有助于您调试问题:
-
-
-
该代码看起来正常。您应该能够像现在这样通过子循环的子循环。是否所有页面都设置为“显示菜单”$Children
仅返回设置为ShowInMenus
的页面。否则,您也可以使用$AllChildren
获取隐藏页面。站点树是否有3层深的页面?什么是$Model
?这是您添加到页面类中的自定义变量吗?@3dgoo是的,我希望显示的所有页面都已正确设置ShowInMenu。是的,共有三层。是的,$Model是一个自定义变量。@3dgoo进一步看,我得到的是$Link的值,但不是Model,所以我只需要研究自定义变量。谢谢你的帮助;你想把你的评论作为一个答案吗?很高兴我能帮上忙。当然,我会发表我的评论作为答案。当你发现你的问题时,一定要分享你的解决方案,以防将来对任何人都有帮助。