我需要修改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正如cheesemacfly建议的那样,我最终在控制器中更改了这些数据,而不是尝试在事件订阅者中更改。