preBind のフォームを変更する必要があります (Symfony 2.2 を使用)。
EventSubscriber の preBind 関数の一部を次に示します。
public function preBind(FormEvent $event)
{
$form = $event->getForm();
$form->get('locationType')->setData('default');
}
ただし、フォームを送信すると、この値は保存されません。手順がありませんか?新しいデータを伝播するために、FormEvent オブジェクト自体で setData を呼び出す必要がありますか?
これを理解するのに本当に役立つのは、このページの下部にある例で保護された関数 CustomizeForm($form, $positions) が完成していることを確認することです:
http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html