Dans une brindille modèle Bolt CMS, je suis en train de créer un tableau sans valeurs en double en extraire des données d'une table Pillars
comme suit:Pourquoi un tableau indexé ne se forme pas lors de la récupération des données dans un modèle Bolt CMS
{% 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) }}
La condition if
ne semble pas fonctionner car arr
n'est pas un tableau indexé. Je vous attendre à obtenir le résultat suivant (par exemple) de la {{ dump(arr) }}
:
array:3 [▼
0 => "Cash Transfer"
1 => "Human Resource"
2 => "ICT Services"
]
Mais au lieu-je obtenir ce qui suit, avec double Human Resource
valeurs ne sont pas enlevées:
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"
}
]
Quel pourrait être le problème ou Que pourrais-je faire de mal?
L'indice de construction n'est pas mal en fait. La classe 'Twig_Markup' fait juste que le contenu à l'intérieur est traité comme sûr. Vous pourriez juste faire '{{arr [1]}}' et il sortirait 'Human resource'. La solution que vous avez trouvée fonctionnera mais échapperait 'HTML' – DarkBee