У меня есть форма, которая имеет форму (CustomerVatsType) для субъекта (CustomerVats). У этой сущности есть столбец (чаны), который содержит несколько строк чата. Эти строки сохраняются в формате json. В этой форме клиент может выбрать чан по умолчанию, который будет сохранен вдефолт«индекс строк, сохраненных в столбце единиц измерения.
но проблема в том, что имя радиовхода «образуют [чаны] [0] [set_default]«из-за структуры формы. Но для правильной работы радиовхода он должен быть одинаковым для всех входов (например, образуют [чаны] [set_default]). Я могу изменить имя в файле ветки, но тогда класс формы не может этого понять.
Что можно сделать для этой ситуации. Поддерживает ли это даже 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));
}
}
Я закончил тем, что использовал следующее исправление для этой проблемы. Это кажется немного грязным, но имело смысл, потому что я не хочу путать других разработчиков с каким-то действительно сложным методом.
<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>
Если кто-то может предложить чистый метод, он может ответить на него. Я думаю, что это должно быть общей проблемой. Хотелось бы увидеть другие подходы хорошо.
Других решений пока нет …