Jak sprawdzić, czy obiekt istnieje w silniku tworzenia szablonów Twig w Symfony2?

84

Mam wielowymiarową tablicę, w której niektóre obiekty istnieją, a inne nie. Ciągle otrzymuję

Metoda „kod” dla obiektu „stdClass” nie istnieje w… ?

Kod, którego używam w moim szablonie to:

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

Niektóre produkty nie mają tego kodu i niestety ta struktura danych jest dostarczana przez plik danych, więc nie mogę tego zmienić.

Kiedy spojrzałem na dokumentację Twig, zinterpretowałem, że gdyby nie było obiektu lub metody, zwróciłoby to po prostu wartość null?

Adam Stacey
źródło

Odpowiedzi:

150

Szybko sprawdziłem, mam nadzieję, że to działa dla Ciebie: str

zdefiniowane

zdefiniowane sprawdza, czy zmienna jest zdefiniowana w bieżącym kontekście. Jest to bardzo przydatne, jeśli używasz opcji strict_variables:

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
Tjorriemorrie
źródło