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