2014-07-09 3 views
2

나는 YML 파일에서 매핑 '잡지'라는 법인을 가지고 : 나는 응용 프로그램에 필요한 구성을 만들어 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 

/설정/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; 

나는 '잡지'테이블에 필드 '파일'이 만들어 지므로 이런 일이 발생하지 않아야합니다. 주석을 사용하여 구성하는 방법을 설명하는 몇 가지 기사를 발견했지만 yml은 찾지 못했습니다.

답변

2

신중하게 읽으면 the documentation 업로드 관련 구성이 doctrine의 엔티티 선언과 섞이지 않습니다.

당신은 다음과 같은 내용으로 src/Acme/DemoBundle/Resource/config/vich_uploader/Magazine.yml 파일을 작성해야합니다 :

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

당신은 내 sandbox application에 코드 샘플을 작업을 찾을 수 있습니다.

+0

좋아, 지금 작동합니다, 감사합니다! 에디션 모드에서는 'file'필드가 비어 있습니다. 귀하의 정보를 위해 : MagazineType에서 '파일'은 '파일'위젯이고 '표지'는 '숨김'(편집 모드에서는 파일 이름이 '표지'위젯의 attr 값으로 표시됩니다. 'file'에 전달 하시겠습니까?). – cbacelar

+0

@ K-Phoen'src/KPhoen/Bundle/MultipleUploadableBundle/Entity/BikeImage.php'에'protected $ image'와'setImage()'를 수동으로 설정했는지 아니면 어떻게 든 생성 되었습니까? – Asara