Php 如何仅更新symfony2中实体的某个字段
我有一个用户表。在那个表中,我有不同的字段。我只需要更新用户表的image列 我只有一个上传图片的表格。即使图像已设置,但当我提交表单时,会收到其他字段的验证错误 我知道验证错误是因为我将user对象传递给表单并发出了isValid() 如何仅更新特定列(如图像列)Php 如何仅更新symfony2中实体的某个字段,php,forms,symfony,doctrine-orm,Php,Forms,Symfony,Doctrine Orm,我有一个用户表。在那个表中,我有不同的字段。我只需要更新用户表的image列 我只有一个上传图片的表格。即使图像已设置,但当我提交表单时,会收到其他字段的验证错误 我知道验证错误是因为我将user对象传递给表单并发出了isValid() 如何仅更新特定列(如图像列) public function updateImageAction(Request $request){ $form = $this->createForm(new UploadImageType(),new
public function updateImageAction(Request $request){
$form = $this->createForm(new UploadImageType(),new User(),[
'action' => $this->generateUrl('update_image')
]);
$form->handleRequest($request);
$user = $this->getUser();
if ($form->isSubmitted() && $form->isValid())
{
$em = $this->getDoctrine()->getManager();
$data = $form->getData();
dump($data);die;
$em->persist($data);
$em->flush();
}
return $this->render('photo.html.twig', [
'form' => $form->createView()
]);
}
可能需要验证组:在此代码示例中,您不是在更新现有用户,而是在创建新用户。如果这是正确的,那么看看验证组,如@cerad所说。如果由于POST数据中不存在用户属性而导致用户属性无效,则可能需要使用
$form->submit($request->request->all(),false)
而不是$form->handleRequest($request)
。验证组是不同的主题。@kozlice关于将clearMissing参数设置为false的评论是正确的answer@kozlice你能看看我的表吗。当我像你建议的那样使用$form->submit($request->request->all(),false)
时,我甚至没有得到任何数据。。。