小编fid*_*lio的帖子

如何在Sonata Media Bundle中实现多对多关系

我试图将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关系在另一个实体上选择或上传多个媒体文件?

symfony sonata-admin

19
推荐指数
1
解决办法
9268
查看次数

标签 统计

sonata-admin ×1

symfony ×1