为Symfony/Bootstrap表单使用TBBC货币/货币bundle



我不认为这个问题是在历史和谷歌上提出的。。。我正在为一个个人项目发现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'

表单元素呈现得更好,应该可以轻松自定义。

最新更新