2016-05-05 4 views
0

Ich verwende Symfony 2.8 und i verwendet VichUploaderBundle Dateien zu. Das Problem ist, wenn ich Dateien manuell hochladen (updaten) will, funktioniert es nicht. Ich habe überall gesucht ich finde nichts, sagt die Dokumentation dieses:Hochladen manuell eine Datei mit VichUploaderBundle

Wenn eine Datei manuell hochladen (dh nicht Symfony-Formular verwenden) sorgt für eine Instanz von ‚UploadedFile‘ wird in diesen Setter injiziert, um die Update auslösen . Wenn der Konfigurationsparameter 'inject_on_load' dieses Pakets auf 'true' gesetzt ist, muss dieser Setter eine Instanz von 'File' akzeptieren können, da das Paket hier während der Hydration der Lehre injiziert wird.

Ich weiß nicht, wie dies manuell zu tun, und ich habe diese manuell zu tun; bitte ich brauche Hilfe damit!

hier ist mein Update-Controller:

$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(); 

Antwort

0

Nun, die Art und Weise Sie die Daten sind die Aktualisierung nicht korrekt ist, können Sie die Einheit aktualisieren. Dies ist der erste Schritt, den Sie lernen müssen, nachdem Sie die Entität erhalten haben, die Sie aktualisieren oder erstellen möchten. Sie müssen die Methode mit der Datei in params der Methode festlegen. Siehe here für Entität und Doktrin in Symfony2.