Я пытаюсь связать 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?