我使用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?
由于