Я пытаюсь связать SonataMediaBundle с другим Entity: Продукты с отношением 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)
))
Однако это действительно сложно. Как я могу выбрать или загрузить несколько медиафайлов в другой Entity через ManyToMany Relation?