2014-07-09 38 views
2

我有一個叫做 '雜誌' 實體,從陽明文件映射:如何在由yml映射的實體中配置VichUploader?

Acme\DemoBundle\Entity\Magazine: 
    type: entity 
    table: magazine 
    id: 
    id: 
     type: integer 
     generator: { strategy: AUTO } 

    fields: 
    edition: 
     type: string 
     length: 255 
     nullable: false 
    title: 
     type: text 
     nullable: false 
    cover: 
     type: string 
     length: 255 
     nullable: false 
    file: 
     mapping: magazine_cover 
     filename_property: cover 

我做了必要的配置在app /配置/ config.yml:

knp_gaufrette: 
    stream_wrapper: ~ 

vich_uploader: 
    db_driver: orm 
    mappings: 
    magazine_cover: 
     uri_prefix:   /upload/magazine/cover 
     upload_destination: %kernel.root_dir%/../web/upload/magazine/cover 
     delete_on_remove: true 

實體文件:

use Doctrine\ORM\Mapping as ORM; 

use Symfony\Component\HttpFoundation\File\File; 
use Symfony\Component\Validator\Constraints as Assert; 
use Vich\UploaderBundle\Mapping\PropertyMapping as Vich; 

我沒有這樣工作,'雜誌'表中創建了一個字段'文件',這不會發生。我發現一些文章解釋瞭如何使用註釋配置,但我沒有發現任何東西。

回答

2

如果您仔細閱讀the documentation,您會注意到上傳相關配置沒有與教義的實體聲明混合使用。

你需要創建一個src/Acme/DemoBundle/Resource/config/vich_uploader/Magazine.yml文件,內容如下:

Acme\DemoBundle\Entity\Magazine: 
    file: 
     mapping: magazine_cover 
     filename_property: cover 

你會發現在我的sandbox application工作代碼示例。

+0

好吧,它現在有效,謝謝!但在編輯模式下,「文件」字段爲空。爲了您的信息:在MagazineType中,我說'文件'是'文件'小部件,'封面'是'隱藏'(在編輯模式下,文件名是'cover'小部件的值attr,如何傳遞給'文件'?)。 – cbacelar

+0

@ K-Phoen是否手動設置了'src/KPhoen/Bundle/MultipleUploadableBundle/Entity/BikeImage.php'中的'protected $ image'和'setImage()',或者是以某種方式生成的? – Asara