在树枝模板中格式化货币

是否有任何过滤器或类似的东西在细枝模板引擎格式化金钱或数字?

75491 次浏览

number_format过滤器自2011年12月底以来一直包括在 Twig 核心中。相关提交是 给你

用法: number_format(decimals, decimalSeparator, thousandSeparator)

\{\{ total|number_format(2) }}
\{\{ total|number_format(0, '.') }}
\{\{ total|number_format(2, '.', ',') }}

阅读更多关于它的 医生

如果你正在使用一个旧版本的 twig,你不想安装任何扩展,你可以像这样使用格式过滤器:

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

虽然不怎么样,但很管用。

基本上,format的工作原理与 PHP 的 sprintf函数类似

细枝扩展库包含许多对 Twig 有用的扩展。随着版本1.2.0的发布,一个 localizedcurrency过滤器被添加到了 Intl 扩展中。顾名思义,此筛选器将根据当前区域设置格式化数字。它使用 PHP 的 NumberFormatter类来实现这一点。

用法

这个过滤器很容易使用。过滤器唯一需要的参数是3个字母的 ISO 4217货币代码。例如,若要以欧元为单位显示金额为27.99,请使用以下代码行:

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

这将根据地区显示不同的结果:

  • 如果区域设置为 en,则为 €27.99
  • 如果区域设置为 fr,则为 27,99 €
  • 如果区域设置为 nl,则为 € 27,99

安装/设置语言环境

Intl 扩展的安装说明可以在 这个独立的答案中找到。

使用 format_currency

从版本2.12增加了 format_currency过滤器。更多信息见官方文档 https://twig.symfony.com/doc/2.x/filters/format_currency.html