La manual su currencyCode
:
Il 3 lettere ISO 4217 codice valuta che indica la valuta di default da usare
provare a impostare currencyCode
a 'EUR'
(anche se questo non sembra essere il fatto che importante) e inserire il formattatore in un array
[
'attribute' => 'Score',
'format' => [
'currency',
'EUR',
[
\NumberFormatter::MIN_FRACTION_DIGITS => 0,
\NumberFormatter::MAX_FRACTION_DIGITS => 0,
]
],
],
Questo richiede s l'estensione intl di PHP da installare. Lo stato dell'estensione può essere verificato chiamando lo extension_loaded('intl')
. In assenza dell'estensione, la soluzione migliore è probabilmente scrivere un formattatore personalizzato.
<?php
namespace app\components;
class Formatter extends \yii\i18n\Formatter
{
public function asRoundedCurrency($value, $currency)
{
return $this->asInteger(round($value)) . ' ' . $currency;
}
}
usarlo al posto del formattatore predefinito uno poi chiamare in questo modo:
[
'attribute' => 'Score',
'format' => ['roundedCurrency', 'EUR'],
]
Questo permette anche di impostare liberamente il simbolo di valuta.
Interesse: sei stato in grado di risolvere questo? – tarleb