Как проверить, существует ли объект в шаблонизаторе Twig в Symfony2? - PullRequest
83 голосов
/ 12 августа 2011

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

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

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

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

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

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

Ответы [ 2 ]

147 голосов
/ 12 августа 2011

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

определено

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

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
0 голосов
/ 20 июля 2017

Если вы проверяете ключ / переменную внутри объекта многомерного массива, то (если определено object.object.key) у меня не сработало.

Но (если определено object.object['key']) или (если определено object.object.get('key')) работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...