Wie können Sie überprüfen, ob in der Twig-Template-Engine in Symfony2 ein Objekt vorhanden ist?

84

Ich habe ein mehrdimensionales Array, in dem einige Objekte existieren und andere nicht. Ich bekomme immer eine

Methode "Code" für Objekt "stdClass" existiert nicht in ... ?

Der Code, den ich in meiner Vorlage verwende, lautet:

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

Einige Produkte haben diesen Code nicht und leider wird diese Datenstruktur über einen Feed bereitgestellt, sodass ich sie nicht ändern kann.

Als ich mir die Twig-Dokumentation ansah, interpretierte ich, dass ein Objekt oder eine Methode, wenn sie nicht vorhanden wäre, einfach null zurückgeben würde.

Adam Stacey
quelle

Antworten:

150

Ich habe schnell nachgeschlagen und hoffe, dass dies für Sie funktioniert: p

definiert

defined prüft, ob im aktuellen Kontext eine Variable definiert ist. Dies ist sehr nützlich, wenn Sie die Option strict_variables verwenden:

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

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