web-dev-qa-db-fra.com

Comment vérifier si un objet existe dans le moteur de modèles Twig dans Symfony2?

J'ai un tableau multidimensionnel où certains objets existent et d'autres non. Je continue à recevoir un

La méthode "code" de l'objet "stdClass" n'existe pas dans ... ?

Le code que j'utilise dans mon modèle est:

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

Certains produits ne possèdent pas ce code et, malheureusement, cette structure de données est fournie via un flux. Je ne peux donc pas le modifier.

Quand j'ai regardé la documentation de Twig, j'ai interprété que si un objet ou une méthode n'était pas là, il renverrait simplement null?

83
Adam Stacey

J'ai rapidement effectué une recherche, en espérant que cela fonctionne pour vous: p

défini

defin vérifie si une variable est définie dans le contexte actuel. Ceci est très utile si vous utilisez l'option strict_variables:

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
146
Tjorriemorrie

Si vous recherchez une clé/variable dans un objet tableau multidimensionnel, alors (si object.object.key est défini) ne fonctionnait pas pour moi. 

Mais (si object.object['key'] est défini) ou (si object.object.get('key') est défini) fonctionne bien. 

0
Monir