Как добавить поле валюты в список со строкой валюты из данных? - PullRequest
0 голосов
/ 17 марта 2019

(Довольно просто добавить currency поле в виде списка

protected function configureShowFields(ShowMapper $showMapper)
    {
        $showMapper
            ->add('price', 'currency', [
                'currency' => 'EUR',
                'locale' => 'fr',
            ])
        ;
    }

Но что если моя валютная строка (EUR, USD, ...) получена из самих данных (иначекак в фрагменте, но из поля таблицы БД)?

можно ли как-нибудь вставить строку currency?

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете установить собственный шаблон для вашего элемента, а затем получить к нему доступ к своему объекту.

    protected function configureShowFields(ShowMapper $showMapper)
    {
        $showMapper
            ->add('price', 'currency', [
                'currency' => 'EUR',
                'locale' => 'fr',
                'template' =>  '@AdminTemplates/sonata/show_currency.html.twig',
            ])
        ;
    }
{# @AdminTemplates/sonata/show_currency.html.twig #}
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

{%- block field -%}
    {% spaceless %}
        {%- if value is null -%}
             
        {%- else -%}
        {{ value|localizedcurrency(object.currencyField) }}
        {%- endif -%}
    {% endspaceless %}
{%- endblock field -%}

В этом примере я использую localizedcurrency из Twig IntlРасширение

Если вы используете SonataIntlBundle , ваш шаблон может расширяться show_currency.html.twig , и, возможно, вы сможете переопределить currency опция поля.

Надеюсь, это поможет

...