Вывод массива в twig

Рейтинг: 1Ответов: 1Опубликовано: 05.11.2014

Вывожу массив:

$data= array('text' => 'first', 'text2' => 'second');
return $this->render('SomeBundle:Default:index.html.twig', array('data' => $data));

Шаблон:

{% for qdata in data %}
{{ qdata.text }}
{% endfor %}

Ошибка:

Impossible to access an attribute ("text") on a string variable ("first") in SomeBundle:Default:index.html.twig at line 2

При том следующий шаблон

{% for qdata in data %}
{{ data.text }}
{% endfor %}

Выводит

second

В чём проблема?

Ответы

▲ 4Принят

Да обычный foreach, чего там:

{% for value in data %}
    {# 'first' #}
    {# 'data' #}
//
{% for key, value in data %}
    {# 'text', 'first' #}
    {# 'text2', 'second' #}

Обновление

@sargss, ну логика (именно логика) ничем не отличается:

{{ data['text'] }} {# выведет `first` #}

{% for key, value in data %}
    {% if key == 'text' or key == 'supertext' %} {# выводим только два конкретных элемента, и то, если они существуют #}
        {{ value }}
    {% endif %}
{% endfor %}