我尝试按照本指南将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
使用一些实体创建一个全新的包ApplicationSonataMediaBundle
:
但是当我想进入下一步时,我得到了实体类别不存在的错误:
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'.
有人可以帮我解决这个问题吗?
提前致谢。
更新
# 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 :(得分: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 :(得分:1)
您似乎只需创建sonata_classification.yml
中所述的the classification docs文件答案 2 :(得分:1)
我在安装新闻包(带来分类和媒体包)之后遇到了同样的问题。我在新闻之前配置了媒体和分类,并收到了与OP相同的错误。在查看代码后,我注意到媒体包允许为类别指定另一个类。这为我停止了错误。
sonata_media:
class:
# my own bundle namespaces for media and classification bundles
media: Application\Sonata\MediaBundle\Entity\Media
gallery: Application\Sonata\MediaBundle\Entity\Gallery
gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia
category: Application\Sonata\ClassificationBundle\Entity\Category
答案 3 :(得分:-1)
我解决了这个问题所以:
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new Application\Sonata\ClassificationBundle\ApplicationSonataClassificationBundle(),
// ...
);
}
和
php bin/console doctrine:schema:update --force