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

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

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

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

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

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

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

2 Solutions collect form web for “如何检查Symfony2中的Twig模板引擎中是否存在对象?”

很快做了一个查询,希望这是适合你的: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') )效果很好。

  • Symfony2 AJAXlogin
  • EntityManagerclosures
  • Symfony2实体集合 - 如何添加/删除与现有实体的关联?
  • 在Twigpath中添加多个参数
  • cascade = {“remove”} VS orphanRemoval = true VS ondelete =“CASCADE
  • 使用symfony2和doctrine从现有数据库生成单个实体
  • 如何将类属性设置为Symfony2表单input
  • Symfony 2中CSS文件的资源path
  • Symfony2无效的表单没有错误
  • 使用FOSUserBundle创build新用户失败
  • symfony 2分枝限制了文本的长度,并把三个点