2

我正在学习 symfony,想在我的 twig 模板中显示一个变量。这是我的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 }}

我会感谢你的任何帮助,我的朋友们!

4

2 回答 2

6

我认为您应该在访问之前检查您的 detailIndex 键是否存在。

Solution 1detailIndex如果密钥不存在,则创建密钥以避免 terners

{% for row in issue.data %}

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

... your business here

{% endfor %}

Solution 2使用燕鸥来获得您的detailIndex价值。这有效,但不适合阅读:)

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

Solution 3使用default过滤器避免未定义的属性异常

{{ row.detailIndex | default('') }}
于 2013-05-16T07:40:50.610 回答
3

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

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

更新 1

再试一次

{{ if 'detailIndex' in row|keys ? row['detailIndex'] : '' }}
于 2013-05-16T04:44:35.570 回答