在典型的 Symfony2 表单中,当一个字段无效时,该表单会再次呈现给用户,所有字段都会重新填充,并且特定字段会出现问题。
在我的表单中,我想强制用户重新输入一个字段的值(出于安全原因),但保留其余字段。有没有办法从 SF2 的控制器中取消设置/清除字段值?
在典型的 Symfony2 表单中,当一个字段无效时,该表单会再次呈现给用户,所有字段都会重新填充,并且特定字段会出现问题。
在我的表单中,我想强制用户重新输入一个字段的值(出于安全原因),但保留其余字段。有没有办法从 SF2 的控制器中取消设置/清除字段值?
只需null
在模型对象本身上将其设置为(或任何空值)即可。
if ($form->isValid()) {
// ...
} else {
$object->setSomeField(null);
}
如下面的答案所示更改对象上的值后,您需要再次创建表单并将对象传递给表单...
$form = $this->createForm(new YourFormType(), $object);
return $this->render('YourBundle:YourEntityName:yourTemplate.html.twig, (array(
'entity'=>$entity,
'form'=>$form->createView()
));