@deron
To add a radio button in a Symfony form, you can use the ChoiceType
field type with the expanded
option set to true.
Here's an example of adding a radio button in a Symfony form:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
use SymfonyComponentFormAbstractType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; class MyFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('my_radio', ChoiceType::class, [ 'choices' => [ 'Option 1' => 'option1', 'Option 2' => 'option2', 'Option 3' => 'option3', ], 'expanded' => true, // Render the choices as radio buttons ]); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => MyFormData::class, ]); } } |
1 2 3 4 5 |
class MyFormData { public $my_radio; // ... } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentRoutingAnnotationRoute; class MyController extends AbstractController { /** * @Route("/my-form", name="my_form") */ public function myFormAction(Request $request) { $myFormData = new MyFormData(); $form = $this->createForm(MyFormType::class, $myFormData); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { // Handle form submission and redirect // ... } return $this->render('my/template.html.twig', [ 'form' => $form->createView(), ]); } } |
1 2 3 4 5 6 |
{# my/template.html.twig #} <form method="POST" action="{{ path('my_form') }}"> {{ form_widget(form) }} <button type="submit">Submit</button> </form> |
When you render the form, you will see radio buttons for each option defined in the choices
option. The selected option will be stored in the my_radio
property of the MyFormData
class when the form is submitted.