2011-08-11 70 views
81

我有一個多維數組,其中存在一些對象而其他數據不存在。我不斷收到如何檢查Symfony2中的Twig模板引擎中是否存在對象?

對象「stdClass」的方法「代碼」不存在於...

我用我的模板的代碼是:

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

有些產品沒有這個代碼,不幸的是這個數據結構是通過飼料提供,所以我不能改變它。

當我看到樹枝文檔時,我解釋說,如果一個對象或方法不存在,它只會返回null?

回答

145

迅速做了查找,希望這是你的作品:P

defined

定義檢查如果一個變量在當前背景下定義。

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

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

看起來很棒。我現在會嘗試。 –

+0

這工作的一種享受。感謝Tjorriemorrie! –

+1

FWIW,鏈接現在http://twig.sensiolabs.org/doc/tests/defined.html – matt

0

如果你正在檢查一個多維數組對象中鍵/變量,那麼,(如果object.object.key定義)並沒有爲我工作:如果您使用strict_variables選項,這是非常有用的。

但是(如果object.object['key']被定義)或(如果object.object.get('key')被定義)運作良好。

相關問題