yii2 – как установить десятичное значение валюты

Я хочу, чтобы моя валюта игнорировала десятичное значение, до сих пор у меня это:

main.php:

'formatter' => [ 'class' => 'yii\i18n\Formatter', 'thousandSeparator' => '.', 'decimalSeparator' => ',', 'currencyCode' => '€', ], 

Посмотреть:

 [ 'attribute' => 'Score', 'format' => 'currency', ], 

Любая идея о том, как двигаться вперед?

Руководство по currencyCode :

3-буквенный код валюты ISO 4217, указывающий используемую валюту по умолчанию

Попробуйте установить currencyCode на 'EUR' (хотя это не похоже на то, что важно) и поместите форматтер в массив

 [ 'attribute' => 'Score', 'format' => [ 'currency', 'EUR', [ \NumberFormatter::MIN_FRACTION_DIGITS => 0, \NumberFormatter::MAX_FRACTION_DIGITS => 0, ] ], ], 

Для этого требуется, чтобы расширение PHP intl было установлено. Статус расширения можно проверить, вызвав extension_loaded('intl') . В случае отсутствия продления ваш лучший выбор, вероятно, заключается в написании пользовательского форматирования.

 <?php namespace app\components; class Formatter extends \yii\i18n\Formatter { public function asRoundedCurrency($value, $currency) { return $this->asInteger(round($value)) . ' ' . $currency; } } 

Используйте его вместо стандартного форматирования и затем вызывайте его следующим образом:

 [ 'attribute' => 'Score', 'format' => ['roundedCurrency', 'EUR'], ] 

Это также позволяет вам свободно устанавливать символ валюты.

В main.php:

 'formatter' => [ 'class' => 'yii\i18n\Formatter', 'locale' => 'yourLocale', //ej. 'es-ES' 'thousandSeparator' => '.', 'decimalSeparator' => ',', 'currencyCode' => 'EUR', ], 

Убедитесь, что установлены расширения php_intl. Меня устраивает.

Ссылка на документацию yii-i18n-formatter .