Php 安装SonatamaDiabundle后的映射异常
我正在尝试设置并使用SonataDiabundle,以便在SonataAdminBundle中使用。我阅读并遵循每一步。当我运行命令时:Php 安装SonatamaDiabundle后的映射异常,php,symfony,sonata-admin,symfony-sonata,sonata-media-bundle,Php,Symfony,Sonata Admin,Symfony Sonata,Sonata Media Bundle,我正在尝试设置并使用SonataDiabundle,以便在SonataAdminBundle中使用。我阅读并遵循每一步。当我运行命令时: php app/console sonata:easy-extends:generate SonataMediaBundle 默认情况下,这会在app/文件夹中创建捆绑包,因此我会手动将其移动到src/文件夹中。现在,每次我尝试访问我的应用程序时,都会出现以下错误: MappingException:类 在链中未找到“Application\Sonata\U
php app/console sonata:easy-extends:generate SonataMediaBundle
默认情况下,这会在app/
文件夹中创建捆绑包,因此我会手动将其移动到src/
文件夹中。现在,每次我尝试访问我的应用程序时,都会出现以下错误:
MappingException:类
在链中未找到“Application\Sonata\UserBundle\Entity\User”
已配置名称空间Sonata\MediaBundle\Entity
我不知道为什么,我到处找参考资料,但什么也没找到。有什么能帮我解决这个问题或给我一个线索吗?再次删除它,然后运行以下命令,
php-app/console-sonata:easy-extends:generate--dest=src-SonataMediaBundle
。。。您忘记了--dest=src
,只需移动文件,您就不会更改所有名称空间。在阅读并尝试几件事情后,我发现了错误所在。在我的条令配置中,我有:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
# auto_mapping: true
entity_managers:
default:
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~
通过删除auto_mapping子句,我不再在原则的映射目录中注册UserBundle。因此,它无法找到您的用户实体。因此,解决方案是从配置中取消注释自动映射:true
,并注释实体管理器.default.mappings
部分,或者在部分中明确指定用户包。所以我选择了第一个,我的代码如下所示:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# entity_managers:
# default:
# mappings:
# ApplicationSonataMediaBundle: ~
# SonataMediaBundle: ~
我找到了解决方案:
doctrine:
orm:
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
auto_mapping: true
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~
自动映射:true必须是到条令、orm、实体管理器、默认部分,而不是到条令、orm。我在运行命令后生成了您建议的包:
\php应用程序/控制台条令:模式:更新--强制更新数据库模式。。。数据库架构更新成功!执行了“5”查询
通过删除app/cache/
文件夹中的所有内容来清除缓存,但错误仍然存在:MappingException:在链配置的命名空间应用程序\Sonata\MediaBundle\Entity中找不到类“Application\Sonata\UserBundle\Entity\User”,Sonata\MediaBundle\Entity
我不知道是什么原因,还有其他想法吗?你能用composer.json更新你的问题吗?你是否真的按照安装进行了,因为schema:update
命令是最后的步骤之一。。。