我正在使用Sonata Admin作为我的后端,并在this指南之后,我能够在我的实体和媒体对象之间建立关系。
这是关系:
/**
* @var \Application\Sonata\MediaBundle\Entity\Media
*
* @ORM\ManyToOne(targetEntity="\Application\Sonata\MediaBundle\Entity\Media", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="image_id", referencedColumnName="id", nullable=false)
*/
protected $image;
这是管理员类:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->add('family')
->add('image', MediaType::class, array(
'provider' => 'sonata.media.provider.image',
'context' => 'default',
'required' => false,
))
;
}
这些是我的设置:
# Twig Configuration
twig:
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
# Sonata form themes
form_themes:
- 'SonataCoreBundle:Form:colorpicker.html.twig'
- 'SonataMediaBundle:Form:media_widgets.html.twig'
结果如下:
我可以成功插入新图片并将其保存在我的实体中但我无法选择已存在的实体,我需要在模式中获取媒体选择器的设置窗口?
答案 0 :(得分:1)
要选择任何现有媒体,您可以使用sonata_type_model_list
其中将显示一个包含模型的“添加/列表”选项的字段,在您的情况下,它将显示媒体,您可以从现有媒体中进行选择