将 TBBC Money/Currency 包用于 Symfony/Bootstrap 表单
Using TBBC Money/Currency Bundle for Symfony/Bootstrap Forms
我不认为这个问题在回顾历史和 google...
我正在为一个个人项目发现 symfony2,但在使用 TBBC Money/Currency 捆绑包(在 packagist 上找到)实现表单时,我不确定以正确的方式解决问题。
我有一个包含价格字段(类型 "Money")的 "Expense" class,我想为其创建一个表单。
在我的 "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'))
;
}
在我的 twig 文件中显示我的表格:
<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>
我得到的是this.
我想要得到的是带有下拉按钮的 bootstrap 输入(参见 mockup)。但我真的不知道如何进行。
有人遇到过这种情况吗?任何帮助,将不胜感激! :)
非常感谢。
Symfony 中的小部件或表单主题有很好的文档记录here and IMO you should go through Inside the same Template as the Form。您可以从 form_div_layout.html.twig
扩展,然后在您的自定义模板上通过更改以下块覆盖 money_widget
的呈现方式:
{%- block money_widget -%}
{{ money_pattern|replace({ '{{ widget }}': block('form_widget_simple') })|raw }}
{%- endblock money_widget -%}
希望对您有所帮助
正在回复我自己...
正如 bundle 文档中正确指出的那样,我必须配置我的 config.yml 以向 twig 声明新类型:
# config.yml
twig:
form:
resources:
- 'TbbcMoneyBundle:Form:fields.html.twig'
表单元素呈现得更好并且应该很容易定制。
我不认为这个问题在回顾历史和 google... 我正在为一个个人项目发现 symfony2,但在使用 TBBC Money/Currency 捆绑包(在 packagist 上找到)实现表单时,我不确定以正确的方式解决问题。
我有一个包含价格字段(类型 "Money")的 "Expense" class,我想为其创建一个表单。
在我的 "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'))
;
}
在我的 twig 文件中显示我的表格:
<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>
我得到的是this.
我想要得到的是带有下拉按钮的 bootstrap 输入(参见 mockup)。但我真的不知道如何进行。
有人遇到过这种情况吗?任何帮助,将不胜感激! :)
非常感谢。
Symfony 中的小部件或表单主题有很好的文档记录here and IMO you should go through Inside the same Template as the Form。您可以从 form_div_layout.html.twig
扩展,然后在您的自定义模板上通过更改以下块覆盖 money_widget
的呈现方式:
{%- block money_widget -%}
{{ money_pattern|replace({ '{{ widget }}': block('form_widget_simple') })|raw }}
{%- endblock money_widget -%}
希望对您有所帮助
正在回复我自己... 正如 bundle 文档中正确指出的那样,我必须配置我的 config.yml 以向 twig 声明新类型:
# config.yml
twig:
form:
resources:
- 'TbbcMoneyBundle:Form:fields.html.twig'
表单元素呈现得更好并且应该很容易定制。