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 и т.д.
Внеся соответствующие правки вывод заработал верно и больше проблем не наблюдалось. Вот так. Удачи!