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