Come si controlla se esiste un oggetto nel motore di template Twig in Symfony2?


84

Ho un array multidimensionale in cui esistono alcuni oggetti e altri no. Continuo a ricevere un

Il metodo "code" per l'oggetto "stdClass" non esiste in ... ?

Il codice che sto usando nel mio modello è:

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

Alcuni prodotti non hanno questo codice e purtroppo questa struttura dati viene fornita tramite un feed, quindi non posso modificarla.

Quando ho esaminato la documentazione di Twig ho interpretato che se un oggetto o un metodo non fosse presente, restituirebbe semplicemente null?

Risposte:


150

Ho fatto una rapida ricerca, spero che funzioni per te: p

definito

definito controlla se una variabile è definita nel contesto corrente. Questo è molto utile se usi l'opzione strict_variables:

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.