Php Symfony2形成部分绑定

Php Symfony2形成部分绑定,php,forms,symfony,symfony-forms,Php,Forms,Symfony,Symfony Forms,我在使用symfony2表单时遇到了问题,如果没有提交相应的表单输入,symfony2表单会将实体的数据覆盖为null 以下是一个例子: 表格类型: $builder ->添加('customerid','text') ->添加('field1','text') ->添加('field2','text') ... 控制器: $customer=新客户(); $customer->setId('customerID'); $customerForm=$this->createForm(新Cust

我在使用symfony2表单时遇到了问题,如果没有提交相应的表单输入,symfony2表单会将实体的数据覆盖为null

以下是一个例子:

表格类型:

$builder
->添加('customerid','text')
->添加('field1','text')
->添加('field2','text')
...
控制器:

$customer=新客户();
$customer->setId('customerID');
$customerForm=$this->createForm(新CustomerType(),$customer);
如果($request->getMethod()=='POST'){
$customerForm->bind($request);
...
}
在视图上,我不呈现customerid文本字段。 仅提交其他字段

提交表单后,$customerForm->bind($request);将以前设置的customerID重写为null,即使没有为其提交空值

如果未呈现输入字段,是否有任何方法不重写该值

这似乎是同样的问题: 提交了一个补丁,但我没有找到关于如何使用它的文档

谢谢

表单中的任何字段(无论是否呈现)都将有一个值,要么为null,要么为字段的值

您使用的是哪个版本的Symfony


我假设您使用的是submit(),它有第二个参数,允许您将表单设置为在对象属性为null时不覆盖它们。例如
$form->submit($request->get($form->getName()),false)
(true是设置/取消覆盖的布尔值,或者实际代码上的$clearMissing)

感谢您的回复。如果我在表单类型中添加了一些“不需要的”字段,那是因为我正在重用这个表单类型来生成需要这个字段的其他表单。我将尝试你的解决方案只是尝试了一下,但它不起作用。也许我有点不对劲。我刚刚替换了
$customerForm->bind($request)
$customerForm->submit($request->get($customerForm->getName()),true)和我丢失的字段仍将替换为“null”。我正在使用symfony 2.4.0。好的,它正在工作。。。第二个参数必须为“false”才能禁用重写。我不假思索地复制/粘贴了你的代码。谢谢