6

I have the following Symfony2 form:

public function buildForm(FormBuilder $builder, array $options)
{   
    $builder
        ->add('submitter_is_home', 'choice', array(
            'expanded' => true,
            'choices' => array('1' => 'Home', '' => 'Away'),
            'data' => '1',
        ))  
    ;   
}   

(I omitted my other fields for clarity.)

When I visit this form in the browser, the "Home" option is not selected. I checked the source, too, and it doesn't look like the proper attribute is set there, either.

Does the default value work differently for radio buttons than for other types of choice fields? What could be going on here?

2 Answers 2

10

If you want an option to be selected the empty_value will not work.

The simply solution is to set a value to your object before adding the form (like $myentity->setRadiobutton(1)). Symfony will understand and add it as a selected value (works with choice type so might be the same with radio!)

Sign up to request clarification or add additional context in comments.

4 Comments

It won't help with a form element set as 'property_path' => false.
and when you have form without entity ?
give an array to the form type instead of an object with as key the key in your form type and as value 1 or true (probably, didn't test it). Should do the trick
In my case, i used a 'choise' type field called 'type', without entity. Solution: $form->get('type')->setData('default_val');
1

in your controller newAction(), befor $form = $this->createCreateForm($entity); add the default value like this $entity->setSubmitter_is_home(1);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.