wake-up-neo.net

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

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

Die Methode "Code" für das 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. Ich kann sie also nicht ändern.

Als ich mir die Twig-Dokumentation anschaute, interpretierte ich, dass ein Objekt oder eine Methode nicht vorhanden wäre, wenn das Objekt null wäre.

83
Adam Stacey

Ich habe schnell nachgeschlagen, hoffe das funktioniert für Sie: p

definiert

definiert prüft, ob eine Variable im aktuellen Kontext 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 %}
146
Tjorriemorrie

Wenn Sie nach einem Schlüssel/einer Variablen in einem multidimentionalen Arrayobjekt suchen, funktionierte (wenn object.object.key definiert ist) für mich nicht. 

Aber (wenn object.object['key'] definiert ist) oder (wenn object.object.get('key') definiert ist) funktioniert gut. 

0
Monir