Sonata Admin + Vich Upload injeksi saat memuat tidak berfungsi

saya menggunakan vich upload dengan admin sonata & saya dapat mengunggah & menghapus file masalah saya adalah saya tidak bisa mendapatkan informasi file yang diunggah

saya menggunakan konfigurasi pengunggah vich "inject_on_load" sebagai benar

vich_uploader:
    db_driver: orm # or mongodb or propel or phpcr
    mappings:
        small_image:
            uri_prefix:         /uploads/images/small
            upload_destination: %kernel.root_dir%/../web/uploads/images/small
            namer:              vich_uploader.namer_uniqid
            inject_on_load:     true
            delete_on_update:   true
            delete_on_remove:   true

sekarang ketika saya membuang objek saya di pengontrol saya mendapatkan objek dengan File Inejcted Proprieties

Movie {#679 ▼
 -id: 7
 -featureImageFile: -featureImageFile: File {#771 ▼
    path: "C:\wamp/../web/uploads/images/feature"
    filename: "56cd61b786c57.jpg"
    basename: "56cd61b786c57.jpg"
    pathname: "C:\wamp\www\/uploads/images/feature\56cd61b786c57.jpg"
    extension: "jpg"
    realPath: "C:\wamp\www\uploads\images\feature\56cd61b786c57.jpg"
    aTime: 2016-02-24 08:54:30
    mTime: 2016-02-24 08:54:30
    cTime: 2016-02-24 08:54:30
    inode: 0
    size: 173519
    perms: 0100666
    owner: 0
    group: 0
    type: "file"
    writable: true
    readable: true
    executable: false
    file: true
    dir: false
    link: false
    linkTarget: "C:\wamp\...\images\feature\56cd61b786c57.jpg"
   }
 -featureImageName: "56cd61b786c57.jpg"
  #regions: PersistentCollection {#717 ▶}
  #genre: Genre {#739 ▶}
  #language: Language {#745 ▶}
} 

tetapi saya memuat file di sonata postUpdate (film) simpan kait saya tidak mendapatkan informasi tentang file

public function postUpdate($movie){
    dump($movie); exit;
}

saya mendapat hasil ini

Movie {#679 ▼
 -id: 7
 -featureImageFile: null
 -featureImageName: "56cd61b786c57.jpg"
  #regions: PersistentCollection {#717 ▶}
  #genre: Genre {#739 ▶}
  #language: Language {#745 ▶}
} 

inilah kelas Entitas Film saya

<?php

namespace Application\NS\AdminBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Symfony\Component\HttpFoundation\File\File;


/**
 * Movie
 *
 * @ORM\Table(name="movie")
 * @ORM\Entity(repositoryClass="Application\NS\AdminBundle\Repository\MovieRepository")
 * @Vich\Uploadable
 */
class Movie
{



    /**
     * @Vich\UploadableField(mapping="feature_image", fileNameProperty="featureImageName")
     * @var File
     */
    private $featureImageFile;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     * @var string
     */
    private $featureImageName; 

    /**
     * Set featureImageName
     * @param string $featureImageName
     * @return object
     */
    public function setFeatureImageName($featureImageName) {
        $this->featureImageName = $featureImageName;
        return $this;
    }

    /**
     * Get featureImageName
     * @return string
     */
    public function getFeatureImageName(){
        return $this->featureImageName;
    }

}

ini kelas admin saya

/**
 * @param FormMapper $formMapper
 */
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
     ->add('featureImageFile', 'vich_image', array( 'required' => false, 'allow_delete'  => true, 'download_link' => false))
}                

apa yang saya lewatkan, adakah yang bisa membantu? apakah ada metode alternatif untuk memasukkan informasi file yang diunggah ke Objek Entitas


person Anil Gupta    schedule 26.02.2016    source sumber
comment
bisakah Anda menunjukkan kode entitas dan kelas admin Anda?   -  person jjgarcía    schedule 26.02.2016
comment
@jjgarcía saya telah memperbarui pertanyaan saya dengan kode kelas entitas & admin   -  person Anil Gupta    schedule 26.02.2016
comment
Apakah sampel dump yang muncul kosong, apakah untuk memperbarui item atau membuat yang baru? mungkin pertanyaan konyol :-) Saya dapat mereproduksi dump ini, ketika saya melakukan upgrade tanpa memilih file.   -  person jjgarcía    schedule 27.02.2016
comment
@jjgarcía terima kasih, tetapi saya menemukan bahwa kita perlu menerapkan penyegaran pada objek doktrin   -  person Anil Gupta    schedule 27.02.2016


Jawaban (1)


kita perlu menyegarkan objek doktrin secara manual untuk memuat properti yang diperbarui (pengunggah mana yang menyuntikkan informasi file ke properti objek melalui peristiwa)

 $this->getContainer()->get('doctrine.orm.entity_manager')->refresh($movie);
person Anil Gupta    schedule 27.02.2016