У меня есть многомерный массив, где некоторые объекты существуют, а другие нет. Я продолжаю получать
Метод "код" для объекта "stdClass" не существует в...?
Код, который я использую в своем шаблоне:
{% for item in items %}
<p>{% if item.product.code %}{{ item.product.code }}{% endif %}</p>
{% endfor %}
Некоторые продукты не имеют этого кода, и, к сожалению, эта структура данных предоставляется через фид, поэтому я не могу его изменить.
Когда я посмотрел документацию Twig, я понял, что если объект или метод не был там, он просто вернул бы null?
Быстро просмотрел, надеюсь, что это работает для вас: p
определены проверки, если переменная определена в текущем контексте. Это очень полезно, если вы используете опцию strict_variables:
{# defined works with variable names #}
{% if foo is defined %}
...
{% endif %}
{# and attributes on variables names #}
{% if foo.bar is defined %}
...
{% endif %}
Если вы проверяете ключ/переменную внутри многомерного массива, то (если object.object.key
определено) не работает для меня.
Но (если определено object.object['key']
) или (если object.object.get('key')
определено) работает хорошо.