Sonata Media Bundle缺少实体类别

Fra*_*k B 4 symfony symfony-cmf sonata-media-bundle sonata

我尝试按照本指南将Sonata Media Bundle安装到Symfony CMF中:https://sonata-project.org/bundles/media/3-x/doc/reference/installation.html.这个命令

php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle
Run Code Online (Sandbox Code Playgroud)

ApplicationSonataMediaBundle与一些实体组成一个全新的包:

  • 画廊
  • GalleryHasMedia
  • 媒体

但是当我想进入下一步时,我得到了实体类别不存在的错误:

app/console doctrine:schema:update --force
Run Code Online (Sandbox Code Playgroud)

这是完整的错误:

[Doctrine\ORM\Mapping\MappingException]                                                                                                  
  The target-entity Application\Sonata\ClassificationBundle\Entity\Category cannot be found in 'Application\Sonata\MediaBundle\Entity\Med  
  ia#category'.
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

提前致谢.

更新:

# 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: ~
Run Code Online (Sandbox Code Playgroud)

Fra*_*k B 6

我必须设置此配置选项才能使其工作:

sonata_media:
    class:
        media: Application\MediaBundle\Entity\Media
        gallery: Application\MediaBundle\Entity\Gallery
        gallery_has_media: Application\MediaBundle\Entity\GalleryHasMedia
    # ...
Run Code Online (Sandbox Code Playgroud)

并且:

doctrine_phpcr:
    # ...

    odm:
        auto_mapping: true
        mappings:
            SonataMediaBundle:
                prefix: Sonata\MediaBundle\PHPCR
            ApplicationSonataMediaBundle:
                prefix: Application\Sonata\MediaBundle\PHPCR
Run Code Online (Sandbox Code Playgroud)


gre*_*ire 1

看起来您只需要创建一个sonata_classification.yml文件,如分类文档中所述