为什么在 Bolt CMS 模板中获取数据时未形成索引数组



在树枝 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) }}

欢迎替代解决方案

最新更新