Цикл for PHP в Twig

У меня небольшая проблема с зацикливанием в Twig. Как зациклить весь sub-nav? В настоящее время он делает sub-nav вложенным в sub-nav.

{% if categories %}
    {% for category in categories %}
    <ul class = "sub-nav">
      <li>
        <a href = "{{ category.href }}" class = "cat-name">{{ category.name }}</a>

        <ul class = "sub-sub-nav list-inline">
          {% if category.children %}
          <li class = "list-inline">
            <a class = "sub-cat-name" href = "">{% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}</a>
            <ul class = "sub-cat-menu">
              {% for child in children %}
              <li><a href = "{{ child.href }}">{{ child.name }}</a></li>
              {% endfor %}
            </ul>
            {% endfor %}</li>
          <a href = "{{ category.href }}" class = "see-all">{{ text_all }} {{ category.name }}</a>
        </ul>
        {% endif %}
      </li>
      {% else %}
      <li><a href = "{{ category.href }}">{{ category.name }}</a></li>
    {% endfor %}
    </ul>

вы можете сбросить сюда свои категории?

MoxGeek 22.11.2018 18:26
pastebin.com/9r7uxrz3 это категории дампа
GameClub Streaming 22.11.2018 19:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
154
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ваш последний endfor-тег должен быть после</ul>.

Ответ принят как подходящий

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

    {% if categories %}
    {% for category in categories %}
    <ul class = "sub-nav">
      <li>
        <a href = "{{ category.href }}" class = "cat-name">{{ category.name }}</a>

        <ul class = "sub-sub-nav list-inline">
          {% if category.children %}
          <li class = "list-inline">
            <a class = "sub-cat-name" href = "">{% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}</a>
            <ul class = "sub-cat-menu">
              {% for child in children %}
              <li><a href = "{{ child.href }}">{{ child.name }}</a></li>
              {% endfor %}
            </ul>
            {% endfor %}</li>
          <a href = "{{ category.href }}" class = "see-all">{{ text_all }} {{ category.name }}</a>
        </ul>
        {% endif %}
      </li>
      {% else %}
      <li><a href = "{{ category.href }}">{{ category.name }}</a></li>
<!-- replace the end for  after the ul -->
    </ul>

  {% endfor %}

не стесняйтесь комментировать здесь, так что я могу вам помочь

если он не работает, попробуйте проверить свою веб-страницу и найти случайное имя в вашей базе данных, то, что я сделал, это поиск в html-выводе слова «сканер» и т. д., которое у вас есть в вашей базе данных. :) хороший замок

В ветке очень важно правильно закрыть операторы if и for ... Я не проверял этот код, работает он или нет, но вы можете ... :)

{% if categories %}
    {% for category in categories %}
    <ul class = "sub-nav">
      <li>
        <a href = "{{ category.href }}" class = "cat-name">{{ category.name }}</a>

        <ul class = "sub-sub-nav list-inline">
          {% if category.children %}
          <li class = "list-inline">
            <a class = "sub-cat-name" href = "">{% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}</a>
            <ul class = "sub-cat-menu">
              {% for child in children %}
              <li><a href = "{{ child.href }}">{{ child.name }}</a></li>
              {% endfor %}
            </ul>
            </li>

          <a href = "{{ category.href }}" class = "see-all">{{ text_all }} {{ category.name }}</a>

        </ul>
       </li>
      {% else %}
      <li><a href = "{{ category.href }}">{{ category.name }}</a></li>
    {% endif %}
    </ul>
{% endfor %}
{% endif %}

Другие вопросы по теме