Twig错误“Array”中的项目“detailIndex”不存在

时间:2013-05-16 00:53:58

标签: php symfony twig

我正在研究symfony并希望在我的树枝模板中显示变量。 这是我的PHP代码:

{% for row in issue.data %}
    {{ dump(row) }}

以及我在网站上得到的内容:

array(size=5)
  'positionId' =>int5
  'position' =>int5
  'cost' =>float3000
  'detailIndex' =>int1
  'hours' =>int3

所以我正在使用:

{{ row.detailIndex }}

访问我的数组变量,但收到错误:

Item "detailIndex" for "Array" does not exist in 

这很奇怪,因为我可以轻松访问这些变量:

{{ row.hours }}
{{ row.position }}
{{ row.cost }}

我会向你的朋友们提供任何帮助!

2 个答案:

答案 0 :(得分:6)

我认为你应该在访问之前检查你的detailIndex密钥是否存在。

解决方案1 ​​创建detailIndex密钥(如果它不存在以避免使用者)

{% for row in issue.data %}

  {% if row.detailIndex is not defined %}
    {% set row.detailIndex = '' %}
  {% endif %}

... your business here

{% endfor %}

解决方案2 使用terner获取detailIndex值。这有效,但不好看:)

{{ row.detailIndex is defined ? row.detailIndex : '' }}

解决方案3 使用default过滤器来避免未定义的属性异常

{{ row.detailIndex | default('') }}

答案 1 :(得分:3)

由于您的数据在数组中,因此一个成员可能有一个键detailIndex,而另一个成员没有。 尝试

{{ row.detailIndex is defined ? row.detailIndex : '' }}

更新1

另一次尝试

{{ if 'detailIndex' in row|keys ? row['detailIndex'] : '' }}