Php 如何仅更新symfony2中实体的某个字段

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

我有一个用户表。在那个表中,我有不同的字段。我只需要更新用户表的image列

我只有一个上传图片的表格。即使图像已设置,但当我提交表单时,会收到其他字段的验证错误

我知道验证错误是因为我将user对象传递给表单并发出了isValid()

如何仅更新特定列(如图像列)

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)
时,我甚至没有得到任何数据。。。