Yii2. Решаем 1 Number formatting failed: U_ILLEGAL_ARGUMENT_ERROR


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 и т.д.

Внеся соответствующие правки вывод заработал верно и больше проблем не наблюдалось. Вот так. Удачи!

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *