Я пытаюсь выбрать предыдущий цикл for в Twig. Я пытаюсь отобразить несколько категорий в категории, если эта категория имеет подкатегории. Если категория не имеет подкатегорий, то она должна отображать заголовки из предыдущего цикла. Обычно это не будет проблемой, если какая-либо категория имеет одинаковую глубину. К сожалению, категории имеют разную глубину.Как использовать это сообщение обратного вызова при этой функции
Итак, я пытаюсь создать какую-то функцию, которая делает это для меня.
Так, например:
Category A -> Category A.sub -> Category A.subsub
Title1 Title1.1 Title1.2
Title1 Title1.1 Title1.2
Category B -> Category B.sub -> Category A.subsub
Title1 Title1.1 Title1.1
Title1 Title1.1 Title1.1
Как вы можете видеть Category B.sub.sub
не имеет каких-либо подкатегорий. Если это так, он должен показать подкатегории из Category B.sub
. Обычно я хотел бы сделать что-то вроде этого:
{% for category in shop.categories %}
{{ category.title }}
{% if category.subs %}
{% for category in category.subs %}
{{ category.title }}
{% if category.subs %}
{% for category in category.subs %}
{{ category.title }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
Есть ли способ, чтобы создать somesort функции, которая проверяет, является ли категория имеет подкатегории. Если это не так, то доступ к предыдущему циклу и отображение этих имен категорий.
Я думал, что это было так просто, как:
{% elseif not category.subs %}
{# Do this #}
Но это не так :(
Вместо того, чтобы использовать только установленную проверку, попробуйте добавить категорию | длина> 0 проверить. Я бы также рекомендовал использовать индекс for, value в категории с уникальными именами на каждом уровне. Это позволит вам либо получить элемент в текущем цикле, либо предыдущий, используя стандартную нотацию массива. – Rooneyl
@Rooney: Проверка длины - это то, что я попробую ... Я должен использовать стандартную нотацию! Или вы имеете в виду что-то другое? У вас есть пример? – Meules
Задумывались ли вы о написании пользовательского расширения/функции twig для этого? Я бы хотел отвлечь логику от шаблонов – Fyntasia