我在以自己想要的方式设计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
屏幕截图:
所以,我有两种方法可以做到:
->add('canonicalPrice', MoneyType::class, array('label' => 'Price', 'currency' => 'USD'))
字段中添加的自动货币标签?未指定任何默认货币默认为欧元而不是美元,这无济于事。注意:我不使用Symfony的Bootstrap表单主题,因为我希望完全控制模板。 MoneyType
字段默认显示货币的事实非常令人讨厌。
答案 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并设置所需的模式。