问题
How can I display the currency symbol in twig? I saved the numeric value of the symbol like:
for EURO : €
for DOLLAR: $
When I render these values, &
is converted to &
and the currency symbol does not show. Any idea will be greatly appreciated. Thank you.
回答1:
To do it well, you've to add a function or a filter which is called as a helper to render currency symbols within your twig templates.
To use the following function,
{{ currency('en_US') }}
You've to add a twig extension as follow,
xxx.twig.your_extension:
class: XXX\YourBundle\Twig\YourExtension
tags:
- { name: twig.extension }
You've then to add a currency
function,
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';
}
}
回答2:
I figured it out. When rendering, I need to use the raw filter of twig.
回答3:
It is an old thread, but for the new people coming here, Twig has now an extension for the currency symbols (with new filters |currency_symbol ) as you can see in the documentation
来源:https://stackoverflow.com/questions/16172222/displaying-currency-symbol-in-twig