Symfony2动态修改表单忽略新子项的默认值

时间:2014-08-13 17:16:57

标签: php forms symfony

所以我想根据提交的数据修改表单。我以该手册为例:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html#cookbook-form-events-submitted-data

但我也想为新添加的输入提供默认值。为此,我为新添加的输入设置了数据选项:

$form->add('position', 'entity', array(
    'class'       => 'AcmeDemoBundle:Position',
    'empty_value' => '',
    'choices'     => $positions,
    'data'        => $sport->getDefaultPosition()
));

不幸的是,如果在处理POST_SUBMIT事件时添加了输入,则它的值会被提交的数据覆盖。由于在此输入的请求中显然没有相应的数据(它是动态添加的),因此symfony将其值设置为null。因此,当我向用户显示增强形式时,它在相应字段中具有空值。

克服这个问题的最佳方法是什么?我可以在PRE_SUBMIT事件中更改提交的数据,但这看起来并不正确。

0 个答案:

没有答案