Як перевірити, чи існує об’єкт у механізмі шаблонування Twig у Symfony2?


84

У мене є багатовимірний масив, де одні об’єкти існують, а інші - ні. Я постійно отримую

Метод "код" для об'єкта "stdClass" не існує в ... ?

Код, який я використовую у своєму шаблоні:

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

Деякі продукти не мають цього коду, і, на жаль, ця структура даних надається через фід, тому я не можу його змінити.

Коли я переглянув документацію Twig, я витлумачив, що якщо об’єкта або методу немає, він просто поверне нуль?

Відповіді:


150

Швидко зробив пошук, сподіваюся, це вам підходить: с

визначений

визначено перевіряє, чи змінна визначена в поточному контексті. Це дуже корисно, якщо ви використовуєте опцію strict_variables:

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.