【问题标题】:Mapping exception after install SonataMediaBundle安装 SonataMediaBundle 后映射异常
【发布时间】:2014-03-10 20:10:36
【问题描述】:

我正在尝试设置和使用 SonataMediaBundle 以在 SonataAdminBundle 中使用。我阅读并遵循docs for SMB 中的每一步。当我运行命令时:

php app/console sonata:easy-extends:generate SonataMediaBundle

默认情况下,这会在app/ 文件夹中创建捆绑包,因此我手动移动到应该在的src/ 文件夹中。现在每次我尝试访问我的应用程序时都会收到此错误:

MappingException:类 'Application\Sonata\UserBundle\Entity\User' 在链中找不到 配置命名空间 Sonata\MediaBundle\Entity

我不知道为什么,我到处寻找参考资料,但一无所获。有谁能帮我解决这个问题或给我一个线索?

【问题讨论】:

    标签: php symfony sonata-admin symfony-sonata sonata-media-bundle


    【解决方案1】:

    我找到了应有的解决方案:

    doctrine:
        orm:
            auto_generate_proxy_classes: %kernel.debug%
            entity_managers:
                default:
                    auto_mapping: true
                    mappings:
                        ApplicationSonataMediaBundle: ~
                        SonataMediaBundle: ~
    

    auto_mapping: true 必须是进到学说、orm、entity_managers、默认部分而不是进到学说、orm。

    【讨论】:

      【解决方案2】:

      阅读并尝试了几件事后,我发现了错误所在。在我的学说配置中,我有:

      orm:
          auto_generate_proxy_classes: "%kernel.debug%"
      #   auto_mapping: true
          entity_managers:
              default:
                  mappings:
                      ApplicationSonataMediaBundle: ~
                      SonataMediaBundle: ~
      

      通过删除 auto_mapping 子句,我不再在学说的映射目录中注册 UserBundle。因此它找不到您的用户实体。因此,解决方案是从您的配置中取消注释 auto_mapping: true 并注释 entity_manager.default.mappings 部分,或者在该部分中明确指定您的用户包。所以我选择了第一个,我的代码现在看起来像这样:

      orm:
          auto_generate_proxy_classes: "%kernel.debug%"
          auto_mapping: true
      #    entity_managers:
      #        default:
      #            mappings:
      #                ApplicationSonataMediaBundle: ~
      #                SonataMediaBundle: ~
      

      【讨论】:

        【解决方案3】:

        再次删除它并运行以下命令,php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle...您忘记了--dest=src,只需移动文件就不会更改所有命名空间。

        【讨论】:

        • 我在运行命令后按照您的建议生成了捆绑包:#php app/console doctrine:schema:update --force Updating database schema... Database schema updated successfully! "5" queries were executed 通过删除 app/cache/ 文件夹中的所有内容来清除缓存,但错误仍然存​​在:MappingException: The class 'Application\Sonata\UserBundle\Entity\User' was not found in the chain configured namespaces Application\Sonata\MediaBundle\Entity, Sonata\MediaBundle\Entity 我不知道是什么原因这个,还有什么想法吗?
        • 你能用你的composer.json更新你的问题吗?你真的按照安装instructions,因为schema:updatecommand是最后的步骤之一......
        猜你喜欢
        • 2022-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 2012-08-17
        相关资源
        最近更新 更多