使用VichUploaderBundle手动上传文件

时间:2016-05-05 12:40:28

标签: php symfony

我正在使用 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();

1 个答案:

答案 0 :(得分:0)

您更新数据的方式不正确,您必须更新实体。这是您必须学习的第一步,您必须获得要更新的实体或创建实体,您需要使用方法的参数中的文件设置方法。请参阅here了解symfony2中的实体和学说。