I'm having trouble formulating a solution for 'editing' a field of my form in my controller. 

Here's what I have:

I have a symfony2 form registered as a service that I call in a function in my controller. I am removing a bunch of fields that aren't necessary for this other form I am directing my users to and then adding a few others. 
(I realize I could create another form and create another service and such but for my purpose this would be a bit overkill. I'm doing it this way because the form functions the same, however some fields are not needed and a few new specific ones are.)

I would now like to essentially 'edit' one field in this form... The 'occupation' field. This field is a `choice` field acting as radio buttons populated by an array of choices. It's `required` and has no `empty_value` requirement in its original state.

I would like to edit it in my controller function to have the same exact values however with a `required` value of `false` and an `empty_value` of `null`.

With the commented out code below the result is a dissapearance of the `occupation` field in my 'new' form and it is replaced by an empty drop down. I realize it's because I'm overriding the whole field below, but I cannot figure out how to simply edit it. 

Code:

```
/**
 * Explanation of addAndRemoveFieldsInRegisterForm function:
 *  The function gets the 'registration' form and removes any
 *      fields not needed for the 'in_registration' form 
 *      and then adds the necessary fields to the form.
 */
private function addAndRemoveFieldsInRegisterForm($user)
{
    $form = $this->createForm('user_registration', $user);

    // http://stackoverflow.com/questions/10920006/pass-custom-options-to-a-symfony2-form ---
                        // --- use that to help. Look at changing the value of array.

    $form->remove('title');
    $form->remove('company');
    $form->remove('username');
    $form->remove('city');
    $form->remove('state');
    $form->remove('country');
    $form->remove('gender');
    $form->remove('age');
    $form->remove('roles');

    // $form->remove('occupation');

    // $pr = $form->get('occupation');
    //     $pr->set('required' => false);

    // $form->get('occupation')->add('required'=>false, 'empty_value'=>null);

    // $form->add('occupation','choice', array(
    //     'required' => false,
    //     'empty_value' => null, 
    // ));        
    // echo "<pre>";
    // var_dump(get_class_methods($form));die;
    $form->add('occupation','choice', array(
            'required' => false,
            'empty_value' => null,
    ));

    $form->add('canEmail', 'checkbox', array(
        'label' => 'Can Email?',
        'required' => false,
    ));

    $form->add('sendEmail', 'choice', array(
        'label' => 'Send Welcome Email? ',
        'required' => true,
        'mapped' => false,
        'expanded' => true,
        'choices' => array(
            "yes" => "Yes",
            "no" => "No"
            ),
    ));

    return $form;

}

```

---

Original Form (the one that's used as a service)

```
private $requireOccupation;

$this->requireOccupation = true;

->add('occupation','choice', $options['occupation'])

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $occupation = array(
            "label" => "Which of these currently describes you best? (Occupation):",
            "expanded" => true,
            'required'=> $this->requireOccupation, 
            "choices" => array(
              "X" => "X",
              "B" => "B",
              "C" => "C",
              "J" => "J",
            ),
            'constraints' => array(
                new NotBlank()
            ));

    $resolver->setDefaults(array(
        'occupation' => $occupation,
    ));
}

```