Existe-t-il des filtres ou quelque chose comme ça dans twig moteur de modèle pour formater de l'argent ou des nombres?
Le filtre number_format
Est inclus dans le noyau Twig depuis la fin de décembre 2011. Le commit correspondant est ici .
Utilisation: number_format(decimals, decimalSeparator, thousandSeparator)
{{ total|number_format(2) }}
{{ total|number_format(0, '.') }}
{{ total|number_format(2, '.', ',') }}
En savoir plus à ce sujet dans le docs
La bibliothèque d'extensions Twig contient un certain nombre d'extensions utiles pour Twig. Avec la sortie de la version 1.2.0, un localizedcurrency
filter a été ajouté à l'extension Intl. Comme son nom l'indique, ce filtre formatera un nombre basé sur les paramètres régionaux actuels. Pour ce faire, il utilise la classe NumberFormatter
de PHP.
Ce filtre est très simple à utiliser. Le seul argument requis pour le filtre est le code de devise à 3 lettres ISO 4217 . Par exemple, pour afficher un montant de 27,99 euros, utilisez la ligne de code suivante:
{{ price|localizedcurrency('EUR') }}
Cela affichera des résultats différents selon les paramètres régionaux:
€27.99
si les paramètres régionaux sont définis sur en
27,99 €
si les paramètres régionaux sont définis sur fr
€ 27,99
si les paramètres régionaux sont définis sur nl
Les instructions d'installation de l'extension Intl se trouvent dans cette réponse séparée .
Si vous utilisez une ancienne version de twig et que vous ne voulez installer aucune extension, vous pouvez utiliser le filtre de format comme ceci:
{{ "%.2f"|format(total) }}
Pas très sympa, mais ça marche.
Fondamentalement, format
fonctionne comme fonction sprintf
de PHP
Voici un filtre qui fait number_format()
:
https://github.com/falmp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Number.php