EasyAdmin: отображать целое число центов в евро / долларах (например, MoneyType с `делителем`) в виде списка - PullRequest
0 голосов
/ 10 июля 2019

При сохранении значения валюты в виде целого числа (т. Е. В центах), есть ли способ отобразить его в представлении списка как евро / доллар?

Пример: € 900 хранятся вбаза данных как 90000.EasyAdmin отображает это как 90,000.То, что я хотел бы иметь, это 900 (или 900,00 или 900.00).

В представлении формы EasyAdmin вы можете настроить это следующим образом:

form:
    fields:
        - { property: 'centAmount', type: 'money', type_options: { divisor: 100, currency: 'EUR' } }

1 Ответ

0 голосов
/ 10 июля 2019

MoneyType не поддерживается в виде списка, см. https://github.com/EasyCorp/EasyAdminBundle/issues/1995

Вот обходной путь, обозначенный в https://github.com/EasyCorp/EasyAdminBundle/issues/1995#issuecomment-356717049:

  1. Создать файл /templates/easy_admin/money.html.twig с:

    {{ (value/100)|number_format(2, ',', '.') }} € {# you can omit the `number_format()` filter if you don’t want the cents to be shown #}
    

    См. /vendor/easycorp/easyadmin-bundle/src/Resources/views/default/field_integer.html.twig для шаблона, который EasyAdmin использует по умолчанию.

  2. Активируйте новый шаблон в easy_admin.yaml:

    list:
        fields:
            - {property: 'centAmount', template: 'easy_admin/money.html.twig' }
    

Результат: 900,00 €

Ссылка: https://symfony.com/doc/current/bundles/EasyAdminBundle/book/list-search-show-configuration.html#rendering-entity-properties-with-custom-templates

...