在twig Bolt CMS模板中,我试图通过从表Pillars
获取数据来创建没有重复值的数组,如下所示:
{% set arr = [] %}
{% setcontent pillars = 'Pillars' %}
{% for pillar in pillars %}
{% if pillar.title not in arr %}
{% set arr = arr|merge([pillar.title]) %}
{% endif %}
{% endfor %}
{{ dump(arr) }}
if
条件似乎不起作用,因为arr
不是索引数组。我希望从{{ dump(arr) }}
:
array:3 [▼
0 => "Cash Transfer"
1 => "Human Resource"
2 => "ICT Services"
]
但我得到以下内容,但未删除重复的Human Resource
值:
array:5 [▼
0 => Twig_Markup {#4297 ▼
#content: "Cash Transfer"
#charset: "UTF-8"
}
1 => Twig_Markup {#4294 ▼
#content: "Human Resource"
#charset: "UTF-8"
}
2 => Twig_Markup {#4530 ▼
#content: "ICT Services"
#charset: "UTF-8"
}
3 => Twig_Markup {#4527 ▼
#content: "Human Resource"
#charset: "UTF-8"
}
4 => Twig_Markup {#4523 ▼
#content: "Human Resource"
#charset: "UTF-8"
}
]
可能是什么问题或者我可能做错什么?
答案 0 :(得分:0)
在尝试了真正的额外努力之后,我设法通过在值之前将空字符串(两个单引号)连接到'强制'它成为字符串来解决问题。这是解决方案,将来可能会节省一些小时的试用期。
{% set arr = [] %}
{% setcontent pillars = 'Pillars' %}
{% for pillar in pillars %}
{% set str = ''~pillar.title %}
{% if str not in arr %}
{% set arr = arr|merge([str]) %}
{% endif %}
{% endfor %}
{{ dump(arr) }}
欢迎替代解决方案