Загрузка файла с помощью VichUploaderBundle вручную

Я использую Symfony 2.8, и я использовал VichUploaderBundle для загрузки файлов.
проблема в том, когда я хочу загрузить (вставить, обновить) файлы вручную, это не работает. я искал везде, я ничего не нашел, в документации говорится это :

Если загрузка файла вручную (т. е. без использования формы Symfony)
экземпляр ‘UploadedFile’ вводится в этот сеттер для запуска
обновление. Если параметр конфигурации этого пакета ‘inject_on_load’ является
значение ‘true’ этот сеттер должен иметь возможность принимать экземпляр ‘File’
как пачка впрыснет одно здесь во время гидратации доктрины.

Я не как сделать это вручную, и я должен сделать это вручную ; пожалуйста, мне нужна помощь в этом !

вот мой контроллер обновлений :

$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 ответ

  1. Ну, то, как вы обновляете данные, неправильно, вы должны обновить сущность. Это первый шаг, который вам нужно изучить после того, как вы должны получить сущность, которую вы хотите обновить или создать, вам нужно будет установить метод с файлом в парамах метода. Сущность и доктрину в symfony2 см. здесь.