Twig For Loop не может перебрать свойства вложенной схемы - PullRequest
1 голос
/ 22 июня 2019

Я новичок в ветке, и я пытаюсь создать навигационное меню с подменю из предоставленной схемы, которая выглядит следующим образом:

  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 %}

Кто-нибудь знает, где я 'я иду не так?

1 Ответ

0 голосов
/ 23 июня 2019

Похоже, вы неправильно ссылаетесь на элементы sub_menu. Попробуйте

{% for sub in item.sub_menu %} ... {% endfor %}

Также полезно, если массив sub_menu пуст. Пустой тест оценивается как true, если переменная имеет значение null, false, пустой массив или пустую строку

{% if item.sub_menu is not empty %} ... {% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...