Symfony 3.4, MoneyType и Bootstrap - PullRequest
0 голосов
/ 19 апреля 2019

У меня возникли некоторые трудности при вводе формы MoneyType так, как я хочу. Я хочу использовать класс Bootstrap input-group-addon для добавления знака доллара к полю, но на самом деле происходит то, что два знака доллара визуализируются ... один автоматически генерируется MoneyType, а другой что я вручную написал в моем шаблоне:

Шаблон:

<div class="form-group">
    {{ form_label(form.canonicalPrice) }}
    {{ form_errors(form.canonicalPrice) }}
    <div class="input-group">
        <span class="input-group-addon">$</span>
        {{ form_widget(form.canonicalPrice, { 'attr': {'id': 'price', 'class': 'form-control'} }) }}
    </div>
</div>

MoneyType определение в моем классе типов форм:

->add('canonicalPrice', MoneyType::class, array('label' => 'Price', 'currency' => 'USD'))

Скриншот:

enter image description here

Итак, есть ли способ для меня:

  1. Скрыть метку автоматической валюты, которую Symfony добавляет с полем MoneyType? Не указывать валюту по умолчанию - евро, а не доллар, что бесполезно.
  2. Как настроить автоматическую метку так, как я хочу?

Примечание: я не использую темы форм Bootstrap Symfony, потому что мне нравится иметь полный контроль над моими шаблонами. Тот факт, что в MoneyType полях по умолчанию отображается валюта, очень раздражает.

1 Ответ

1 голос
/ 19 апреля 2019

Стиль автоматической метки:

Знак доллара, предшествующий вводу, взят из атрибута money_pattern MoneyType Так как документ на MoneyType говорит, что вы можете:

Изменить в нем представление :

{{ form_row(form.value, { 'money_pattern': '{{ widget }} $' }) }}

или как это

{% block money_widget %}
    {%- set type = type|default('number') -%}
    {{ parent() }}
{% endblock %}

Изменить его в конструкторе :

Используйте money_pattern в FormType и установите желаемый шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...