Задать вопрос
hell0w0rd
@hell0w0rd
Просто разработчик

Не могу понять как проверить массив в twig?

Вот макрос немного измененный подобного вопроса с stackoverflow
{% macro menu(links) %}
    {% for key, link in links %}
        <li>
            <a href="{{ link }}">{{ key }}</a>
            {% if link.sublink %}
                <ul>
                    {{ _self.menu_links(link[key]) }}
                </ul>
            {% endif %}
        </li>
    {% endfor %}
{% endmacro %}


Но у link нет sublink и нет фильтра hassublinks. Как быть, самому написать? Или все же есть методы проверки внутри ядра твига?

if link is array — также не работает, такой проверки нет

На вход подается массив, если нужно могу дать var_dump, в yml он выглядит так:
Главная: /
Контакты: /contacts
Форум: /forum
О нас: /about
Услуги:
    Услуга1: /one
    Услуга2: /two
  • Вопрос задан
  • 7948 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
JekaRu
@JekaRu
Вот что придумал, должно работать как требуется:
{% if  (link|keys)|length>0 %}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
JekaRu
@JekaRu
Может так?
{% if link.sublink is defined and link.sublink|length>0 %}
Ответ написан
@Koroalen
Так вот:

{% if link is iterable %}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы