Symfony2在表单提交/验证后设置Entity属性

时间:2013-07-09 08:44:43

标签: php symfony symfony-forms

我正在提交一个symfony2表单,如果该实体的电子邮件字段未填写且该属性已提交为' true'我想将某个Entity属性设置为false。

我现在这样做:

$myForm = $this->createForm(new FormType(), $myEntity);

$myForm->handleRequest($request);
if ($myForm->isValid()) {
    if (!$myEntity->getEmail()) {
        $myEntity->setProperty(false);
    }
}

我现在希望在提交表单后显示对应于该属性的复选框。但是表单中的属性复选框没有响应,它会保持检查状态。

有谁知道如何正确地做到这一点?

1 个答案:

答案 0 :(得分:3)

我认为这是因为您的表单已经绑定到实体。表单已获取实体的数据,并且在实体更改时不会更新。您可以直接在表单上操作:

$myForm['someProperty']->setData( false );

但我希望按照你的第一行完全重建表格是更好的做法。