在show action

时间:2016-07-25 13:57:01

标签: php media show sonata

我使用Sonata制作应用程序,我正面临MediaBundle的一些问题。 我有两个实体:

产品& ProductImage

内部产品我有这个:

/**
 * @ORM\ManyToMany(targetEntity="ProductImage", cascade={"persist"}, fetch="LAZY", indexBy="ASC")
 */
protected $medias;

Inside ProductImage:

/**
 * @ORM\ManyToOne(targetEntity="Product", cascade={"persist"}, fetch="LAZY")
 */
protected $Product;

/**
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Media\Media", cascade={"persist"}, fetch="LAZY")
 */
protected $image;

public function __toString()
{
    global $kernel;

    $provider = $kernel->getContainer()->get($this->getImage()->getProviderName());
    return $provider->generatePublicUrl($this->getImage(),'small');
}

在我的ProductAdmin.php文件中:

public function configureShowFields(ShowMapper $showMapper)
{
    $showMapper
        ->add('name')
        ->end()
        ->with('Medias', array('class' => 'col-md-12'))
        ->add('medias', 'sonata_type_collection', array(), array(
            'inline' => 'table',
            'sortable'  => 'position'
        )) 
        ->end();
}

当我进入展示页面(... / product / 6 / show)时,我正确显示了所有信息,但medias只是一个公共URL列表。如何显示每个图像而不是URL?

由于

0 个答案:

没有答案