2015-11-12 5 views
1

Мой контроллер отправляет Twig следующий ассоциативный массив в переменной под названием «петиция»;Нужна помощь по проблеме Twig с ассоциативными массивами

Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
      [doctype] => "somedoc" 
      [nrdoc] => "99" 
      [datadoc] => "2015-01-01" 
     ) 
    [1] => stdClass Object 
     (
      [id] => 2 
      [doctype] => "otherdoc" 
      [nrdoc] => "100" 
      [datadoc] => "2015-01-01" 
     ) 
) 

Затем в моем шаблоне Twig (смотреть) Я делаю это:

{% for id in petition %} 

     {% if id.doctype == 'somedoc' %} 
      {{id.nrdoc}}/{{id.datadoc}} 
     {% else %} 
       UNDEFINED! 
     {% endif %} 

    {% endfor %} 

Проблема заключается в том, что я не могу понять логику того, как выход «UNDEFINED!» только один раз, если doctype! = "somedoc", когда в массиве есть другие элементы key-> value. То, как я это делаю, будет выводить «НЕ УКАЗАН!». каждый раз петли сценарий ...

Заранее спасибо за помощь

Gabriel

ответ

2

Один из вариантов заключается в определении дополнительной переменной для этого:

{% set undefined = false %} 

{% for id in petition %} 
    {% if id.doctype == 'somedoc' %} 
     {{ id.nrdoc }}/{{ id.datadoc }} 
    {% else %} 
     {% set undefined = false %} 
    {% endif %} 
{% endfor %} 

{% if undefined == true %} 
    UNDEFINED! 
{% endif %} 

Вы можете прочитать больше о установка переменных Twig here.

+0

спасибо, chapay! если бы я делал это в php, я бы сделал это по аналогичной логике. К сожалению, я новичок в Twig, и я не знал о том, что он может фактически определять переменные в шаблоне! вы спасли мой день:) ... да, я знаю ... должен был прочитать об этом в документах ... :) –

+0

@GabrielMaftei Добро пожаловать! Пожалуйста, примите ответ, если считаете, что это полезно. – chapay

Смежные вопросы