C'est probablement relativement facile à faire, mais je suis nouveau à twig et je suis frustré.
J'adapte le code de cette réponse: https://stackoverflow.com/a/24058447
le tableau est fait en PHP à travers ce format:
$link[] = array(
'link' => 'http://example.org',
'title' => 'Link Title',
'display' => 'Text to display',
);
Puis à travers twig, j'y ajoute du html, avant d'imploser:
<ul class="conr">
<li><span>{{ lang_common['Topic searches'] }}
{% set info = [] %}
{% for status in status_info %}
{% set info = info|merge(['<a href="{{ status[\'link\'] }}" title="{{ status[\'title\'] }}">{{ status[\'display\'] }}</a>']) %}
{% endfor %}
{{ [info]|join(' | ') }}
</ul>
Mais je reçois:
Errno [8] Conversion de tableau en chaîne dans F:\localhost\www\twig\include\lib\Twig\Extension\Core.php sur la ligne 832
Il est résolu lorsque je supprime cette ligne, mais n'affiche pas:
{{ [info]|join(' | ') }}
Des idées sur la façon dont je peux imploser cela correctement?
** mise à jour **
En utilisant la fonction de vidage de Twig, il ne renvoie rien. Il semble que ce ne soit même pas le charger dans le tableau en premier lieu. Comment puis-je charger des informations dans un nouveau tableau.
Vous ne devriez pas vraiment construire des structures de données complexes à l'intérieur de modèles Twig. Vous pouvez obtenir le résultat souhaité de manière plus idiomatique et lisible comme ceci:
{% for status in status_info %}
<a href="{{ status.link }}" title="{{ status.title }}">{{ status.display }}</a>
{% if not loop.last %}|{% endif %}
{% endfor %}
info est un tableau, vous devez donc simplement écrire
{{ info|join(', ') }}
pour afficher votre tableau d'informations.
[info] est un tableau avec une valeur: les informations du tableau.
Vous pouvez utiliser json_encode pour sérialiser le tableau sous forme de chaîne, puis afficher pretty - build in twig
{{array | json_encode (constant ('JSON_PRETTY_PRINT'))}}