0

我需要在 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

4

1 回答 1

0

正如 cheesemacfly 建议的那样,我最终在控制器中更改了这些数据,而不是尝试在事件订阅者中进行。

于 2014-07-31T19:48:46.473 回答