Twig - Appliquer plusieurs filtres

, par  admin

Hello

Vous pouvez appliquer plusieurs filtres à votre variable twig en les ajoutant les uns à la suite des autres :
{{ entity.commentaire | filtre1 | filtre2 }}

Cette méthode ne fonctionne cependant pas si vous utilisez les fitres raw et slice en même temps (si vous voulez par exemple afficher les 50 premiers caractères d’un textarea). Il faudra pour cela remplacer le filtre raw par le filtre striptags :

{{ entity.commentaire|length > 50 ? entity.commentaire|striptags|slice(0, 50) ~ '...' : entity.commentaire}}

Seulement il y a un nouveau problème, ce filtre ne prend pas en compte les caractères spéciaux. Il faut donc encoder la variable en utf-8. Voici donc le code pour lequel tout fonctionnera :

{{ entity.commentaire|length > 50 ? entity.commentaire|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES')|slice(0, 50) ~ '...' : entity.commentaire}}

Voilà, pas si compliqué au final mais on ne peut pas l’inventer...
A+

Un peu de théorie... Tous les cours théoriques