Formatter — мощнейший хелпер в коробке Yii2. И все вроде с ним понятно, но вот буквально 10 минут назад столкнулся с ошибкой «Formatting currency value failed: 1 Number formatting failed: U_ILLEGAL_ARGUMENT_ERROR» при форматировании строки в GridView.
Ошибка была странной, так как на одной странице пагинации выводилась сумма, а на следующей — выше приведенная ошибка. В БД хранятся суммы в integer.
В конфиге следующий код:
'formatter' => [ 'timeZone' => 'UTC', 'dateFormat' => 'dd.MM.Y', 'timeFormat' => 'HH:mm:ss', 'datetimeFormat' => 'dd.MM.Y HH:mm', 'decimalSeparator' => '.', 'thousandSeparator' => ' ', 'nullDisplay' => '-', 'currencyCode' => '₴' // <-- ---- ---- ]
Озадачившись, провел 5 минут в поисках решения и оказалось, что значение currencyCode
я задал вовсе не верно. Здесь ожидается трехбуквенная аббревиатура - типа USD, RUB, UAH и т.д.
Внеся соответствующие правки вывод заработал верно и больше проблем не наблюдалось. Вот так. Удачи!