在树枝 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"
}
]
可能是什么问题或我可能做错了什么?
在真正努力之后,我设法通过在值之前连接一个空字符串(两个单引号)来"强制"它成为一个字符串来解决这个问题。这是解决方案,将来可能会为某人节省几个小时的试用时间。
{% 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) }}
欢迎替代解决方案