我试图将SonataMediaBundle与另一个实体联系起来:与ManyToMany有关系的产品.
架构和关系很好地创建.
但是,当我编辑或创建新产品时,我尝试添加一个按钮,我可以通过媒体库搜索媒体文件,然后使用按钮上传新文件.
对于OneToMany的关系,可以Admin\ProductAdmin::configureFormFields通过添加以下内容轻松完成:
->add('image', 'sonata_type_model_list', array(
'required' => false
), array(
'link_parameters' => array(
'context' => 'default',
'provider' => 'sonata.media.provider.image'
)
))
Run Code Online (Sandbox Code Playgroud)
因此,我获得了与SonataMediaBundle图库中已使用的相同的3个图标(从库中添加,上传和删除)
但关于ManyToMany的关系是不可能的!因为每次我选择媒体时,都会取代之前的媒体.所以我无法选择多种媒体类型.
我想和The Gallery一样使用(galleryHasMedia)
->add('galleryHasMedias', 'sonata_type_collection', array(
'by_reference' => false
), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position',
'link_parameters' => array('context' => $context)
))
Run Code Online (Sandbox Code Playgroud)
但是,它真的很复杂.如何通过ManyToMany关系在另一个实体上选择或上传多个媒体文件?