Symfony 3.4,MoneyType和Bootstrap

时间:2019-04-19 02:35:42

标签: php symfony bootstrap-4

我在以自己想要的方式设计MoneyType表单输入时遇到一些困难。我想使用Bootstrap的input-group-addon类在该字段前面加一个美元符号,但实际上发生的是正在渲染两个美元符号……一个由{{1 }},以及我在模板中手动编写的代码:

模板:

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

屏幕截图:

enter image description here

所以,我有两种方法可以做到:

  1. 隐藏Symfony在->add('canonicalPrice', MoneyType::class, array('label' => 'Price', 'currency' => 'USD')) 字段中添加的自动货币标签?未指定任何默认货币默认为欧元而不是美元,这无济于事。
  2. 按照我想要的方式设置自动标签的样式?

注意:我不使用Symfony的Bootstrap表单主题,因为我希望完全控制模板。 MoneyType字段默认显示货币的事实非常令人讨厌。

1 个答案:

答案 0 :(得分:1)

设置自动标签的样式:

输入之前的美元符号来自 MoneyType 的money_pattern属性 正如doc on MoneyType所言,您可以:

在其中修改视图

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

或类似的

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

在构建器中对其进行修改

在FormType中使用money_pattern并设置所需的模式。