0

在典型的 Symfony2 表单中,当一个字段无效时,该表单会再次呈现给用户,所有字段都会重新填充,并且特定字段会出现问题。

在我的表单中,我想强制用户重新输入一个字段的值(出于安全原因),但保留其余字段。有没有办法从 SF2 的控制器中取消设置/清除字段值?

4

2 回答 2

1

只需null在模型对象本身上将其设置为(或任何空值)即可。

if ($form->isValid()) {
    // ...
} else {
    $object->setSomeField(null);
}
于 2012-07-13T07:26:01.510 回答
1

如下面的答案所示更改对象上的值后,您需要再次创建表单并将对象传递给表单...

$form = $this->createForm(new YourFormType(), $object);

return $this->render('YourBundle:YourEntityName:yourTemplate.html.twig, (array(
    'entity'=>$entity,
    'form'=>$form->createView()
));
于 2012-07-19T15:14:20.957 回答