web-dev-qa-db-ja.com

Symfony2のTwigテンプレートエンジンにオブジェクトが存在するかどうかをどのように確認しますか?

一部のオブジェクトが存在し、他のオブジェクトが存在しない多次元配列があります。私は取得し続けます

オブジェクト "stdClass"のメソッド "code"は...に存在しません

テンプレートで使用しているコードは次のとおりです。

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

一部の製品にはこのコードがなく、残念ながらこのデータ構造はフィードを介して提供されるため、変更できません。

Twig documentation

83
Adam Stacey

すぐに検索を行いました、これがあなたのために働くことを願っています:p

定義済み

definedは、現在のコンテキストで変数が定義されているかどうかをチェックします。 strict_variablesオプションを使用する場合、これは非常に便利です。

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

{# and attributes on variables names #}
{% if foo.bar is defined %}
    ...
{% endif %}
147
Tjorriemorrie

多次元配列オブジェクト内のキー/変数をチェックしている場合、(_object.object.key_が定義されている場合)は機能しませんでした。

ただし、(_object.object['key']_が定義されている場合)または(object.object.get('key')が定義されている場合)はうまく機能します。

0
Monir