Twig For循环无法迭代嵌套的架构属性

Twig For循环无法迭代嵌套的架构属性,twig,schema,Twig,Schema,我是twig的新手,我正在尝试创建一个导航菜单,其中包含来自所提供模式的子菜单,如下所示- menu_items: [ { url: 'http://testurl.com', text: 'Menu Item 1', active: true, sub_menu: [ { url: 'http://testurl.com',

我是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 %}
{%if菜单项%}
    {菜单项中的项的%u%}
  • {%if item.sub_menu%}
      {%用于项目%中的子菜单}
    • {%endfor%}
    {%endif%}
  • {%endfor%}
{%endif%}

有人知道我哪里出错了吗?

看起来您没有正确引用
子菜单项。试一试

{% for sub in item.sub_menu %} ... {% endfor %}
如果
子菜单
数组为空,这也很有用。如果变量为null、false、空数组或空字符串,则空测试的计算结果为true

{% if item.sub_menu is not empty %} ... {% endif %}

看起来您没有正确引用
子菜单
项。试一试

{% for sub in item.sub_menu %} ... {% endfor %}
如果
子菜单
数组为空,这也很有用。如果变量为null、false、空数组或空字符串,则空测试的计算结果为true

{% if item.sub_menu is not empty %} ... {% endif %}

就这样,非常感谢。我只是不太懂语法。就是这样,非常感谢。我只是不能完全正确地理解语法。