On this page
View Helpers
CurrencyFormat
The CurrencyFormat view helper can be used to simplify rendering of
localized currency values. It acts as a wrapper for the
NumberFormatter class within the PHP's
internationalization extension (ext/intl).
Basic Usage
echo $this->currencyFormat(1234.56, 'USD'); // '$1,234.56'
By default, if no locale is provided, CurrencyFormat will use the system
locale provided by PHP's Locale class and the getDefault() method.
(The above example assumes that the environment locale is set to en_US.)
Using Currency Code
echo $this->currencyFormat(1234.56, 'EUR'); // '1.234,56 €'
$this->plugin('currencyFormat')->setCurrencyCode('EUR');
echo $this->currencyFormat(1234.56); // '1.234,56 €'
(The above example assumes that the environment locale is set to de.)
Get current Value
To get the current value of this option, use the getCurrencyCode() method.
$this->plugin('currencyFormat')->setCurrencyCode('USD');
echo $this->plugin('currencyFormat')->getCurrencyCode(); // 'USD'
Default Value
The default value of this option is null.
Show or hide Decimals
echo $this->currencyFormat(1234.56, 'EUR', false); // '1.234 €'
$this->plugin('currencyFormat')->setShouldShowDecimals(false);
echo $this->currencyFormat(1234.56); // '1.234 €'
(The above example assumes that the environment locale is set to de.)
Get current Value
To get the current value of this option, use the shouldShowDecimals() method.
$this->plugin('currencyFormat')->setShouldShowDecimals(true);
echo $this->plugin('currencyFormat')->shouldShowDecimals(); // true
Default Value
The default value of this option is null that means the decimals are showing.
Using Locale
echo $this->currencyFormat(1234.56, 'EUR', null, 'de'); // '1.234,56 €'
$this->plugin('currencyFormat')->setLocale('de');
echo $this->currencyFormat(1234.56, 'EUR'); // '1.234,56 €'
Get current Value
To get the current value of this option, use the getLocale() method.
$this->plugin('currencyFormat')->setLocale('de');
echo $this->plugin('currencyFormat')->getLocale(); // 'de'
Default Value
By default, if no locale is provided, CurrencyFormat will use the system
locale provided by PHP's Locale::getDefault().
Define custom Pattern
echo $this->currencyFormat(1234.56, 'EUR', null, 'de', '#0.# kg'); // '12345678,90 kg'
$this->plugin('currencyformat')->setCurrencyPattern('#0.# kg');
echo $this->currencyFormat(1234.56, 'EUR'); // '12345678,90 kg'
(The above example assumes that the environment locale is set to de.)
Valid patterns are documented at ICU DecimalFormat; see the NumberFormatter::setPattern documentation for more information.
Get current Value
To get the current value of this option, use the getCurrencyPattern() method.
$this->plugin('currencyFormat')->setCurrencyPattern('#0.# kg');
echo $this->plugin('currencyFormat')->getCurrencyPattern(); // '#0.# kg'
Default Value
The default value of this option is null.
Multiple Executions
If the different options are set prior to formatting then it will be applied each time the helper is used.
$this->plugin('currencyformat')->setCurrencyCode('USD')->setLocale('en_US');
echo $this->currencyFormat(1234.56); // '$1,234.56'
echo $this->currencyFormat(5678.90); // '$5,678.90'