2013-06-17 3 views
0

Я использую 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, и новая запись будет создана в таблице моего пакета и связана с вновь созданным носителем.

Надеюсь, я мог бы хорошо описать свою проблему и поблагодарить вас.

ответ

0

Если вы используете пользовательские классы сущностей с SonataMediaBundle, вам нужно указать их в config.yml:

sonata_media: 
    class: 
     media: MyVendor\MediaBundle\Entity\Media 
     gallery: MyVendor\MediaBundle\Entity\Gallery 
     gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia 
Смежные вопросы