У меня возникли некоторые трудности со стилем ввода формы 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'))
Снимок экрана:
Итак, есть ли способ для меня:
MoneyType? Не указание какой-либо валюты по умолчанию для евро, а не доллара, что бесполезно.Примечание. Я не использую темы форм Symfony Bootstrap, потому что мне нравится иметь полный контроль над своими шаблонами. Тот факт, что в полях MoneyType по умолчанию отображается валюта, раздражает очень.






Стиль автоматической метки:
Знак доллара, который добавляется к вводу, взят из атрибута money_pattern Тип денег. Итак, как говорит документ по MoneyType, вы можете:
Измените в нем представление :
{{ form_row(form.value, { 'money_pattern': '{{ widget }} $' }) }}
или вот так
{% block money_widget %}
{%- set type = type|default('number') -%}
{{ parent() }}
{% endblock %}
Измените его в конструкторе :
Используйте money_pattern в FormType и установите нужный шаблон.
Вы должны иметь возможность расширить MoneyType и переопределить то, что вы хотите.