我正在使用 Symfony 2.8 ,我使用 VichUploaderBundle 上传文件。 问题是,当我想手动上传(插入,更新)文件时,它不起作用。我搜索到的所有地方我什么也没找到,文档说这个:
如果手动上传文件(即不使用Symfony表格),请确保 将'UploadedFile'实例注入此setter以触发 更新。如果此bundle的配置参数'inject_on_load'是 设置为'true'这个setter必须能够接受'File'的实例 因为捆绑将在Doctrine水合作用中注入一个。
我不知道如何手动执行此操作,我必须手动执行此操作;拜托,我需要帮助!
这是我的更新控制器:
$qb = $this->container->get('doctrine')->getEntityManager()->createQueryBuilder();
$qb->update('LocationBundle:Vehicule v')
->set('v.accessoires', '?1')
->set('v.imageFile', '?2')
->where('v.id = ?3')
->setParameter('1', $editForm->get('accessoires')->getData())
->setParameter('2', $editForm->get('imageFile')->getData())
->setParameter('3', $request->get('id'))
->getQuery()
->execute();
答案 0 :(得分:0)
您更新数据的方式不正确,您必须更新实体。这是您必须学习的第一步,您必须获得要更新的实体或创建实体,您需要使用方法的参数中的文件设置方法。请参阅here了解symfony2中的实体和学说。