Symfony 在细枝中显示货币符号

Symfony 在细枝中显示货币符号,symfony,twig,currency,Symfony,Twig,Currency,如何在细枝中显示货币符号?我保存了符号的数值,如下所示: for EURO : € for DOLLAR: $ 当我渲染这些值时,&将转换为&和货币符号不显示。任何想法都将不胜感激。谢谢。要做好这项工作,您必须添加一个或一个名为“帮助器”的对象,以在您的细枝模板中呈现货币符号 要使用以下功能 {{ currency('en_US') }} 您必须添加一个,如下所示 xxx.twig.your_extension: class: XXX\You

如何在细枝中显示货币符号?我保存了符号的数值,如下所示:

for EURO : €
for DOLLAR: $

当我渲染这些值时,
&
将转换为
&和货币符号不显示。任何想法都将不胜感激。谢谢。

要做好这项工作,您必须添加一个或一个名为“帮助器”的对象,以在您的细枝模板中呈现货币符号

要使用以下功能

{{ currency('en_US') }}
您必须添加一个,如下所示

xxx.twig.your_extension:
    class: XXX\YourBundle\Twig\YourExtension
    tags:
        - { name: twig.extension }
然后,您需要添加一个
货币
函数

namespace XXX\YourBundle\Twig;

class YourExtension extends \Twig_Extension
{
    public function getFunctions() {
        return array(
            'currency' => new \Twig_Function_Method($this, 'currencyFunction'),
        );
    }

    public function currencyFunction($locale) {
        $formatter = new \NumberFormatter($locale, \NumberFormatter::CURRENCY);
        $symbol = $formatter->getSymbol(\NumberFormatter::CURRENCY_SYMBOL);

        return $symbol;
    }

    public function getName() {
        return 'your_extension';
    }
}

我想出来了。渲染时,我需要使用twig的过滤器。

这是一个旧线程,但是对于新来的人来说,twig现在有了货币符号的扩展(使用新的过滤器|货币_符号),正如您在

是中所看到的,通过使用原始过滤器,您的变量不会被转义。顺便说一句,我添加了一个更干净的解决方案,允许您呈现任何货币符号。您是否考虑过使用utf8字符而不是html实体?是的。实际上我已经考虑过了。只是我觉得这更容易。非常感谢你的想法。顺便说一下,我有点困惑。我应该使用什么语言环境作为欧元符号?然后您应该使用与欧元国家相关的语言环境(fr/it/…)作为参考,您也可以在以下位置找到答案: