这是在$formBuilder
:
->add('depth', 'hidden', array('mapped'=>false, 'data' => 1))
我有一个被激活的函数ON_PRE_SUBMIT
,在下面的一行我假设这个字段的值会改变,但事实并非如此。
$form->get('depth')->setData($depth++); //$depth = $form->get('depth')->getData();
我也尝试按照here显示:
$data = $event->getData();
$data['depth'] = $depth++;
$form->setData($data);
但没有任何改变。我在其他字段上尝试了上述代码,并且它们通常会更改字段值。我错过了什么吗?
答案 0 :(得分:4)
在$ event:
上设置数据$data = $event->getData();
$data['depth'] = $depth + 1;
$event->setData($data);
答案 1 :(得分:1)
我注意到的一件事是你正在使用$depth++
,它将首先赋值,然后递增它,这样你最终会分配旧的值。试着改变这个:
$form->get('depth')->setData(++$depth);
您是否也可以尝试将事件更改为POST_SUBMIT
,我相信如果您使用PRE_SUBMIT
,则提交的数据将覆盖您在PRE_SUBMIT
上修改的所有数据