Я использую Symfony2 с пакетами Sonata (Sonata-Admin и Sonata-Media) для разработки моего проекта CMS.SonataMediaBundle Использование с пользовательскими объектами
Я настраиваю классы администратора для своего пользовательского пакета, и он работает хорошо. Мне нужно прикрепить изображения к моим объектам и просмотреть их на своих пользовательских страницах. Но у меня есть проблема с SonataMediaBundle для использования в моих пользовательских сущностях. Я пытаюсь добавить поле в AdminController моего класса сущности, а также создать отношения manyToOne в определении моей сущности.
Я никогда не получил его работу и в целом дает «Entity не был найден» Exception (Учение \ ORM \ EntityNotFoundException класс)
Я не мог найти статью, за исключением на SonataMedia Documentation и не может решить эту проблему. Кто-нибудь знает хорошую статью, чтобы прочитать и понять всю концепцию SonataMedia Bundle?
Некоторые больше информации о моем коде ниже:
MyEntity.orm.yml
PRJ\Bundle\PRJBundle\Entity\MyEntity:
type: entity
table: my_table
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
generator:
strategy: IDENTITY
# Other fields eliminated
manyToOne:
picture:
targetEntity: Application\Sonata\MediaBundle\Entity\Media
joinColumns:
name: Picture_id
referencedColumnName: id
orphanRemoval: false
lifecycleCallbacks: { }
На самом деле этот код работает на обоих админпанели и пользовательских страниц, но я не мог заставить его работать на admin, когда пользователь admin редактирует запись или вводит новую запись.
Также, пожалуйста, поправьте меня, если я ошибаюсь, я предполагаю, что могу создать класс администратора для моей настраиваемой сущности, которая прикрепляет изображения. Я добавлю поле и определю его как внешний ключ в таблицу media__media в своей базе данных и создаю необходимые определения для своих сущностей. Наконец, я смогу загрузить новые изображения через SonataMediaBundle при создании новых объектов. Пользователь Admin вводит данные сущности и нажимает кнопку загрузки и выбирает изображение, кнопка загрузки работает с пакетом SonataMedia и загружает изображение в таблицу SonataMedia bundle, и новая запись будет создана в таблице моего пакета и связана с вновь созданным носителем.
Надеюсь, я мог бы хорошо описать свою проблему и поблагодарить вас.