2012-04-25 28 views
5

Tôi muốn sử dụng gói phương tiện truyền thông sonata cho phương tiện trong gói của tôi.cách sử dụng gói phương tiện truyền thông sonata với các thực thể của tôi

Tôi có một thực thể cần có thư viện. Sau khi cài đặt phương tiện truyền thông sonata bó và tạo ra dễ dàng: kéo dài, có 3 đơn vị khác nhau:

  • Media.php
  • Gallery.php
  • GalleryHasMedia.php.

Làm cách nào để liên kết các thực thể này với pháp nhân của riêng tôi để triển khai thư viện ???

Trả lời

4

Bạn có thể liên kết một với một. ví dụ, thực hiện của tôi:

config.yml:

contexts: 
     product: 
      providers: 
       - sonata.media.provider.image 

      formats: 
       big: { width: 1680 , quality: 100} 

Gallery.php:

private $product; 

Gallery.orm.xml:

<one-to-one field="product" target-entity="Alteza\ProductBundle\Entity\Product" inversed-by="gallery"> 
     <join-column name="product_id" referenced-column-name="id" /> 
    </one-to-one> 

Product.php:

/** 
* @ORM\OneToOne(targetEntity="\Application\Sonata\MediaBundle\Entity\Gallery", mappedBy="product", cascade={"all"}) 
*/ 
private $gallery; 

ProductAdmin.php:

->add('gallery', 'sonata_type_model_list', array('required' => false), array('link_parameters' => array('context' => 'product'))) 
+0

Từ nơi đến bối cảnh sản phẩm? –

Các vấn đề liên quan