Форматирования деньги в шаблоны Twig


есть ли какие-либо фильтры или sth, как это в twig template engine для форматирования денег или чисел?

4 57

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 localizedcurrency filter был добавлен в расширение Intl. Как следует из названия, этот фильтр будет форматировать число на основе текущей локали. Он использует PHP NumberFormatter класс для этого.

использование

этот фильтр очень прост в использовании. Единственным обязательным аргументом для фильтра 3-х букв ISO 4217 код валюты. Например, чтобы отобразить сумму в 27,99 евро, используйте следующую строку кода:

{{ price|localizedcurrency('EUR') }}

это будет отображать различные результаты в зависимости от локали:

  • €27.99 если языковой стандарт установлен в en
  • 27,99 € если языковой стандарт установлен в fr
  • € 27,99 если языковой стандарт установлен в nl

установка / настройка язык

инструкции по установке расширения Intl можно найти в это отдельный ответ.

Если вы используете более старую версию twig и не хотите устанавливать какие-либо расширения, вы можете использовать фильтр формата следующим образом:

{{ "%.2f"|format(total) }}

не очень приятно, но это работает.

в принципе format работы как в PHP sprintf функции

вот фильтр, который делает number_format():

https://github.com/falmp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Number.php