如何检查Symfony2中的Twig模板引擎中是否存在对象?

我有一个multidimensional array,其中存在一些对象,而其他人则不存在。 我不断得到一个

对象“stdClass”的方法“代码”不存在于…

我在我的模板中使用的代码是:

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

有些产品没有这个代码,不幸的是这个数据结构是通过一个feed来提供的,所以我不能改变它。

当我看到树枝文档时,我解释说,如果一个对象或方法不在那里,它只会返回null?

很快做了一个查询,希望这是适合你的:p

定义

定义的检查是否在当前上下文中定义了一个variables。 如果使用strict_variables选项,这非常有用:

 {# defined works with variable names #} {% if foo is defined %} ... {% endif %} {# and attributes on variables names #} {% if foo.bar is defined %} ... {% endif %} 

如果您正在检查multidimensional array对象中的键/variables,那么(如果定义了object.object.key )不适用于我。

但是(如果定义了object.object['key'] )或者(如果定义了object.object.get('key') )效果很好。