2012-05-21 1 views
0

У меня есть два div, слева и справа, в зависимости от данных, полученных из БД, я хочу вывести его в первом или последнем, в плоском PHP это одна из самых простых вещей, но с использованием Symfony2 и TWIG это не выглядит. Вот мой не-рабочий код, чтобы позволить вам лучше понять:Как обрабатывать буферные переменные в TWIG и корректно отображать их

{% set colLeft = '' %} 
{% set colRight = '' %} 

{% for el in form.myCollection %} 
    {% if el.foo.vars.value.type == 'phone_number' %} 
     {% set colLeft = form_row(el.left) %} 
    {% else %} 
     {% set colRight = form_row(el.right) %} 
    {% endif %} 
{% endfor %} 

<div class="left"> 
    {{ colLeft }} 
</div> 

<div class="right"> 
    {{ colRight }} 
</div> 

Таким образом, в моей последней странице HTML я вижу HTML-код, а не интерпретацию. Я также подумал о написании вывода для 2 файлов left.html.twig и right.html.twig, а затем для включения include, но я уверен, что есть лучший способ, который я не вижу прямо сейчас. Любое предложение?

ответ

1

Вы должны использовать 'raw' фильтр:

<div class="left"> 
    {{ colLeft|raw }} 
</div> 

<div class="right"> 
    {{ colRight|raw }} 
</div> 
+0

Там это, я знал, что это была простая вещь. Спасибо – linuxatico

+0

и как я могу сделать то же самое, используя шаблоны? Например, {% set colLeft = colLeft ~ include ':: num.html.twig'%} ??? Это не работает – linuxatico

+2

Может быть так: '{% set colLeft%} {{colLeft}} {% include ':: num.html.twig'%} {% endset%}' (специальный 'set' http://twig.sensiolabs.org/doc/tags/set.html) – maxdec