我不认为这个问题是在历史和谷歌上提出的。。。我正在为一个个人项目发现symfony2,在使用TBBC Money/Currency捆绑包(可在packagegist上找到)实现表单时,我不确定是否会正确处理这个问题。
我有一个"Expense"类,它包含一个价格字段(类型为"Money"),我想为它创建一个表单
在我的"ExpenseType"文件中,我有以下内容:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('title', TextType::class)
->add('actualDate', DateType::class, array('widget' => 'single_text'))
->add('comment', TextareaType::class)
->add('price', MoneyType::class, array())
->add('user', 'entity', array(
'class' => 'VPAccountsBundle:User',
'property' => 'username'))
;
}
在我的小树枝文件上显示我的表格:
<div class="row">
<div class="col-lg-3 col-md-3 control-label">
{{ form_label(form.price, "Amount" ) }}
</div>
<div class="col-lg-4 col-md-4">
{{ form_widget(form.price , { 'attr':{ 'class':'form-control', 'placeholder':'Amount' } } ) }}
</div>
{{ form_errors(form.price) }}
</div>
我得到的是这个。
我想得到的是一个带有下拉按钮的引导输入(见实物模型)。但我真的不知道该怎么办。
有人遇到过这种情况吗?如有任何帮助,我们将不胜感激!:)
非常感谢。
Symfony中的主题小部件或表单在这里有很好的文档记录,并且IMO您应该在与表单相同的模板内浏览。您可以从form_div_layout.html.twig
扩展,然后在自定义模板上通过更改以下块来覆盖money_widget
的渲染方式:
{%- block money_widget -%}
{{ money_pattern|replace({ '{{ widget }}': block('form_widget_simple') })|raw }}
{%- endblock money_widget -%}
希望它能帮助
回复我自己。。。正如捆绑包文档中正确指出的那样,我必须配置我的config.yml来将新类型声明为trick:
# config.yml
twig:
form:
resources:
- 'TbbcMoneyBundle:Form:fields.html.twig'
表单元素呈现得更好,应该可以轻松自定义。