Symfony 3.4, MoneyType и Bootstrap

У меня возникли некоторые трудности со стилем ввода формы 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'))

Снимок экрана:

Symfony 3.4, MoneyType и Bootstrap

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

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

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

Вы должны иметь возможность расширить MoneyType и переопределить то, что вы хотите.

Arleigh Hix 19.04.2019 07:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
699
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

или вот так

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

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

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

Другие вопросы по теме