Twig For 循环无法遍历嵌套架构属性
Twig For Loop Fails to Iterate Over Nested Schema Properties
我是 twig 的新手,我正在尝试从提供的模式创建一个带有子菜单的导航菜单,看起来像这样-
menu_items: [
{
url: 'http://testurl.com',
text: 'Menu Item 1',
active: true,
sub_menu: [
{
url: 'http://testurl.com',
text: 'Sub menu Item 1',
},
{
url: 'http://testurl.com',
text: 'Sub menu Item 2',
},
],
},
]
菜单显示得很好,但我正在努力寻找正确的语法来填充这些子菜单项。我放入了一个 if 语句,因为并不总是有一个子菜单,然后是一个 for 循环来为架构中的每个子菜单项创建一个列表项,但是唉。
{% if menu_items %}
<nav>
<ul>
{% for item in menu_items %}
<li>
<a href="{{ item.url }}">{{ item.text }}</a>
{% if item.sub_menu %}
<ul>
{% for sub_menu in item %}
<li>
<a href="{{ item.sub_menu.url }}">
{{ item.sub_menu.text }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
{% endif %}
有人知道我哪里错了吗?
您似乎没有正确引用 sub_menu
项。尝试
{% for sub in item.sub_menu %} ... {% endfor %}
如果 sub_menu
数组为空,这也很有帮助。如果变量为 null、false、空数组或空字符串,则空测试的计算结果为 true
{% if item.sub_menu is not empty %} ... {% endif %}
我是 twig 的新手,我正在尝试从提供的模式创建一个带有子菜单的导航菜单,看起来像这样-
menu_items: [
{
url: 'http://testurl.com',
text: 'Menu Item 1',
active: true,
sub_menu: [
{
url: 'http://testurl.com',
text: 'Sub menu Item 1',
},
{
url: 'http://testurl.com',
text: 'Sub menu Item 2',
},
],
},
]
菜单显示得很好,但我正在努力寻找正确的语法来填充这些子菜单项。我放入了一个 if 语句,因为并不总是有一个子菜单,然后是一个 for 循环来为架构中的每个子菜单项创建一个列表项,但是唉。
{% if menu_items %}
<nav>
<ul>
{% for item in menu_items %}
<li>
<a href="{{ item.url }}">{{ item.text }}</a>
{% if item.sub_menu %}
<ul>
{% for sub_menu in item %}
<li>
<a href="{{ item.sub_menu.url }}">
{{ item.sub_menu.text }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
{% endif %}
有人知道我哪里错了吗?
您似乎没有正确引用 sub_menu
项。尝试
{% for sub in item.sub_menu %} ... {% endfor %}
如果 sub_menu
数组为空,这也很有帮助。如果变量为 null、false、空数组或空字符串,则空测试的计算结果为 true
{% if item.sub_menu is not empty %} ... {% endif %}