如何使用sonata媒体捆绑我的实体

时间:2012-04-25 18:28:14

标签: symfony-sonata

我想在我的捆绑包中使用sonata媒体包作为媒体。

我有一个应该有画廊的实体。在安装了奏鸣曲媒体包并生成easy:extends之后,有3个不同的实体:

  • 忽略原始
  • Gallery.php
  • GalleryHasMedia.php。

如何将这些实体链接到我自己的实体以进行图库实现?

2 个答案:

答案 0 :(得分:4)

您可以一对一链接。 例如,我的实现:

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')))

答案 1 :(得分:3)