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.
Ich habe schnell nachgeschlagen, hoffe das funktioniert für Sie: p
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 %}
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.