Форматирования деньги в шаблоны Twig
есть ли какие-либо фильтры или sth, как это в twig template engine для форматирования денег или чисел?
4 ответа:
The
number_formatфильтр был включен в ядро ветки с конца декабря 2011 года. Соответствующая фиксация -здесь.использование:
number_format(decimals, decimalSeparator, thousandSeparator){{ total|number_format(2) }} {{ total|number_format(0, '.') }} {{ total|number_format(2, '.', ',') }}подробнее об этом читайте в docs
The библиотека расширений веточек содержит ряд полезных расширений для прутиком. С выпуском версии 1.2.0, a
localizedcurrencyfilter был добавлен в расширение Intl. Как следует из названия, этот фильтр будет форматировать число на основе текущей локали. Он использует PHPNumberFormatterкласс для этого.использование
этот фильтр очень прост в использовании. Единственным обязательным аргументом для фильтра 3-х букв ISO 4217 код валюты. Например, чтобы отобразить сумму в 27,99 евро, используйте следующую строку кода:
{{ price|localizedcurrency('EUR') }}это будет отображать различные результаты в зависимости от локали:
€27.99если языковой стандарт установлен вen27,99 €если языковой стандарт установлен вfr€ 27,99если языковой стандарт установлен вnlустановка / настройка язык
инструкции по установке расширения Intl можно найти в это отдельный ответ.
Если вы используете более старую версию twig и не хотите устанавливать какие-либо расширения, вы можете использовать фильтр формата следующим образом:
{{ "%.2f"|format(total) }}не очень приятно, но это работает.
в принципе
formatработы как в PHPsprintfфункции
вот фильтр, который делает
number_format():https://github.com/falmp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Number.php