我有一个表单,其中包含一个实体( CustomerVats )的表单( CustomerVatsType )。此实体有一列( vats ),其中包含多个增值税行。这些行以json格式保存。在此表单上,客户可以选择默认增值税,该增值税将保存在" 默认"以单位列保存的行索引。
但问题是无线电输入名称是" 形式[vats] [0] [set_default] "由于形式的结构。但是要使无线电输入正常工作,所有输入都需要相同(例如形式[vats] [set_default] )。我可以在twig文件中更改名称但是然后表单类无法理解这一点。
这种情况可以做些什么。甚至Symfony都支持它。这是我的表格类。
class VatsType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('vats', CollectionType::class, array(
'entry_type' => VatType::class,
'allow_add' => false,
'allow_delete' => false,
'prototype' => false,
'by_reference' => false,
)
)
->add('vatSumbit', SubmitType::class);
}
}
class VatType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('country_id', HiddenType::class, array('label' => false))
->add('vat_high', HiddenType::class, array('label' => false))
->add('vat_low', HiddenType::class, array('label' => false))
->add('vat_zero', HiddenType::class, array('label' => false))
->add('vat_none', HiddenType::class, array('label' => false))
->add('set_default', RadioType::class, array('label' => false))
->add('set_show', RadioType::class, array('label' => false));
}
}
答案 0 :(得分:0)
我最终使用以下修复程序来解决此问题。它似乎有点脏,但最有意义,因为我不想让其他开发者与一些非常困难的方法混淆。
<script type="text/javascript">
(function (document, window, $) {
$('[data-radio-field]').change(function () {
var field = $(this).data('radio-field');
$('[data-radio-field="' + field + '"]').not($(this)).prop('checked', false);
});
})(document, window, jQuery);
</script>
如果有人可以提出干净的方法,欢迎他们回答。我认为这应该是一个常见的问题。希望看到其他方法。