2016-07-25 3 views
3

Я пытаюсь установить пакет Sonata Media Bundle в Symfony CMF в следующем руководстве: https://sonata-project.org/bundles/media/3-x/doc/reference/installation.html. Эта командаSonata Media Bundle отсутствует сущность Категория

php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle 

делает целый новый пакет ApplicationSonataMediaBundle с несколькими субъектами:

  • Галерея
  • GalleryHasMedia
  • Медиа

Но я получаю сообщение об ошибке, что объект Категория не существует, когда я хочу перейти к следующему шагу:

app/console doctrine:schema:update --force 

Это полная ошибка:

[Doctrine\ORM\Mapping\MappingException]                         
    The target-entity Application\Sonata\ClassificationBundle\Entity\Category cannot be found in 'Application\Sonata\MediaBundle\Entity\Med 
    ia#category'. 

Есть ли кто-нибудь, кто может помочь мне решить эту проблему?

Заранее спасибо.

Update:

# sonata_classification.yml: 

sonata_classification: 
    # ... 

doctrine: 
    orm: 
     entity_managers: 
      default: 
       #metadata_cache_driver: apc 
       #query_cache_driver: apc 
       #result_cache_driver: apc 
       mappings: 
        #ApplicationSonataClassificationBundle: ~ 
        SonataClassificationBundle: ~ 
+0

Является ли комплект комплекта для классификации и зарегистрирован? – greg0ire

+0

новая Sonata \ ClassificationBundle \ SonataClassificationBundle(), .. да это –

+0

похоже, что вы не единственный: https://github.com/sonata-project/SonataMediaBundle/issues/1084. Это может быть ошибка. – greg0ire

ответ

1

Похоже, вам просто нужно создать sonata_classification.yml файл, как описано в the classification docs

+0

Спасибо greg0ire, я скопировал и вставил данный пример в этот файл. Вы можете прочитать его в моем первом сообщении. Должно быть достаточно? –

+0

Я не уверен. Просто попробуй, посмотрим. – greg0ire

+0

если я включил sonata_classification.yml в config.yml, тогда я могу запросить страницы cmf. если я не включаю его, то та же ошибка появляется, как и в cli, когда я хочу обновить базу данных, но затем для носителя сущности вместо сущности Category. –

6

я должен был установить эти параметры конфигурации, чтобы заставить его работать:

sonata_media: 
    class: 
     media: Application\MediaBundle\Entity\Media 
     gallery: Application\MediaBundle\Entity\Gallery 
     gallery_has_media: Application\MediaBundle\Entity\GalleryHasMedia 
    # ... 

А также:

doctrine_phpcr: 
    # ... 

    odm: 
     auto_mapping: true 
     mappings: 
      SonataMediaBundle: 
       prefix: Sonata\MediaBundle\PHPCR 
      ApplicationSonataMediaBundle: 
       prefix: Application\Sonata\MediaBundle\PHPCR 
-1

я решил эту проблему так:

// app/AppKernel.php 
public function registerBundles() 
{ 
    return array(
     // ... 
     new Application\Sonata\ClassificationBundle\ApplicationSonataClassificationBundle(), 
     // ... 
    ); 
} 

и

php bin/console doctrine:schema:update --force 
0

У меня была такая же проблема, после установки новостей узелок (который приносит классификации и медиа-пакеты с ним). Я настроил как медиа, так и классификацию перед новостями и получил ту же ошибку, что и OP. Изучив код, я заметил, что медиа-пакет позволяет указать другой класс для категории. Это остановило ошибку для меня.