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.

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 %}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.