Как вы проверяете, существует ли объект в движке шаблонов Twig в Symfony2?

84

У меня есть многомерный массив, в котором одни объекты существуют, а другие нет. Я продолжаю получать

"Код" метода для объекта "stdClass" не существует в ... ?

Код, который я использую в своем шаблоне:

{% for item in items %}
    <p>{% if item.product.code %}{{ item.product.code }}{% endif %}</p>
{% endfor %}

Некоторые продукты не имеют этого кода, и, к сожалению, эта структура данных предоставляется через канал, поэтому я не могу ее изменить.

Когда я просмотрел документацию Twig, я понял, что если бы объекта или метода не было, он просто вернул бы null?

Адам Стейси
источник

Ответы:

150

Быстро просмотрел, надеюсь, это сработает для вас: p

определены

defined проверяет, определена ли переменная в текущем контексте. Это очень полезно, если вы используете параметр strict_variables:

{# defined works with variable names #}
{% if foo is defined %}
    ...
{% endif %}

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
Tjorriemorrie
источник