Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 安装SonatamaDiabundle后的映射异常_Php_Symfony_Sonata Admin_Symfony Sonata_Sonata Media Bundle - Fatal编程技术网

Php 安装SonatamaDiabundle后的映射异常

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

我正在尝试设置并使用SonataDiabundle,以便在SonataAdminBundle中使用。我阅读并遵循每一步。当我运行命令时:

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
命令是最后的步骤之一。。。