Согласно документации , обычно не следует использовать RadioType
напрямую. Использование ChoiceType
объекта позволяет вам следовать ожидаемым стандартам HTML, то есть вы используете то же имя, но другое значение для каждого элемента. Таким образом, браузер, как всегда было в случае с переключателями, автоматически ограничивает пользователя одним выбором.
<?php
$builder->add('yourCategory', ChoiceType::class, [
'choices' => [
'Info' => 'info',
'Star' => 'star',
'Some other label' => 'other',
],
// attributes for label elements
'label_attr' => ['class' => 'sr-only'],
// attributes for input elements
'choice_attr' => [
'Info' => ['class' => 'fa fa-info'],
'Star' => ['class' => 'fa fa-star'],
'Some other label' => ['class' => 'whatever'],
],
// setting these options results in radio buttons
// being generated, instead of a select element
'expanded' => true,
'multiple' => false,
]);
Тогда в вашем контроллере:
switch($form->getData()['yourCategory']) {
case 'info':
// do stuff
break;
case 'star':
// do stuff
break;
case 'other':
// do stuff
break;
}