Как реализовать много -- -много отношений в 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'
                     )
                ))

Таким образом, я получаю те же 3 значка, которые уже использовались в галерее SonataMediaBundle (. добавить из библиотеки , загрузить и удалить)

НО на отношении ManyToMany это невозможно! Потому что каждый раз, когда я выбираю носитель, он заменяет предыдущий. Поэтому я не могу выбрать несколько типов мультимедиа.

Я думал использовать так же, как Галерея(galleryHasMedia)

->add('galleryHasMedias', 'sonata_type_collection', array(
            'by_reference' => false
        ), array(
            'edit'     => 'inline',
            'inline'   => 'table',
            'sortable' => 'position',
            'link_parameters' => array('context' => $context)
        ))

Тем не менее, это действительно сложно. Как я могу выбрать или загрузить несколько медиафайлов в другой объект через отношение ManyToMany?

19
задан Nic Wortel 22 June 2016 в 14:51
поделиться