捆绑“ApplicationSonataUserBundle”不存在或未启用

Posted

技术标签:

【中文标题】捆绑“ApplicationSonataUserBundle”不存在或未启用【英文标题】:Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled 【发布时间】:2012-08-31 16:38:22 【问题描述】:

我需要安装 SonataUserBundle 才能安装 SonataNewsBundle。

我一步一步跟着installation Tutorial,但我得到了这个错误:

./app/console sonata:easy-extends:generate SonataUserBundle



  [InvalidArgumentException]                                                 
  Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled.  

尚未生成捆绑包。这个命令应该做到!

有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

嗯,该命令是第 5 步,您需要先执行前 4 步,然后才能运行第 5 步。

你得到的错误是因为你错过了第 2 步:安装包和配置框架(例如 AppKernel 不知道包)

【讨论】:

【参考方案2】:

我通过从 config.yml 和 AppKernel 中删除对 Application\Sonata\UserBundle\Entity\User 和 Application\Sonata\UserBundle\Entity\Group 的引用和“new Application\Sonata\UserBundle\ApplicationSonataUserBundle()”来安装它.php

然后运行 ​​easy extends generate 命令,然后将引用放入。我认为文档将这些步骤搞混了。在 config.yml 中的包存在之前,您不能引用它。

【讨论】:

【参考方案3】:

编辑 2016/09/23 :这个答案可能有点过时了。如果这不起作用,您可以在下面探索@ashish answer。

在 Sonata User Bundle 设置期间,建议您将 doctrine:orm 映射到 ApplicationSonataUserBundle,而在 sonata:easy-extends 期间无法做到这一点:生成 SonataUserBundle,因为 ApplicationSonataUserBundle 还不存在。

所以在启动 sonata:easy-extends:generate SonataUserBundle 命令之前,您可以评论 ApplicationSonataUserBundle 行:

# app/config/config.yml
[...]
# Doctrine Configuration
doctrine:
  [...]
  orm:
    auto_generate_proxy_classes: %kernel.debug%
      entity_managers:
        default:
          mappings:
            # ApplicationSonataUserBundle: ~
            SonataUserBundle: ~

然后你启动 sonata:easy-extends:generate SonataUserBundle 命令, 最后,删除 ***ApplicationSonataUserBundle 上的 cmets(#):~ **

Bundle“ApplicationSonataUserBundle”不存在或未启用错误消失了。

祝你有美好的一天。

【讨论】:

【参考方案4】:

您好,我也遇到了同样的问题。但是我可以解决这个问题。让我们看看我在做什么:

在命令中:

php app/console sonata:easy-extends:generate -d src/ SonataUserBundle

然后写入AppKernel文件:

new Application\Sonata\UserBundle\ApplicationSonataUserBundle

现在这正在工作;)

还有这个命令

sonata:easy-extends:generate SonataUserBundle

在“App/”文件中创建 Bundle。

【讨论】:

【参考方案5】:

在运行 sonata:easy-extends:generate 之前执行以下步骤

(1) 注释 config.yaml 中的 ApplicationSonataUserBundle 行

    mappings:
               # ApplicationSonataUserBundle: ~
                SonataUserBundle: ~

(2) 将 Application\Sonata\UserBundle\Entity\User 替换为 Sonata\UserBundle\Entity\BaseUser

(3) 将 Application\Sonata\UserBundle\Entity\Group 替换为 Sonata\UserBundle\Entity\BaseGroup

(4) 运行奏鸣曲:easy-extends:generate "php app/console sonata:easy-extends:generate SonataUserBundle -d src"

现在还原步骤 1、2 和 3

【讨论】:

谢谢!这是该问题的真正解决方案,因为在您评论 #ApplicationSonataUserBundle: ~ 您将收到一条错误消息“Class 'Application\Sonata\UserBundle\Entity\User' 不存在”并且作曲家无法继续生成这些类。将 config.yml 中的我的替换为您所说的修复它,我能够生成捆绑包。【参考方案6】:

你的步骤是对的,除了它在“app/”文件夹中创建了你的ApplicationSonataAdminBundle,所以你应该剪切这个生成的ApplicationSonataAdminBundle并粘贴到“src/”文件夹中..

【讨论】:

【参考方案7】:

如果您不想使用“easy-extends”——另一种可能的解决方案是覆盖 config.yml

中的默认设置
sonata_user:
    class:
        user: Acme\UserBundle\Entity\User
        group: Acme\UserBundle\Entity\Group

【讨论】:

以上是关于捆绑“ApplicationSonataUserBundle”不存在或未启用的主要内容,如果未能解决你的问题,请参考以下文章

捆绑在其他软件中安装 是啥意思

捆绑问题(angular2 + webpack 捆绑)

Webpack:如何使用动态捆绑组合两个完全独立的捆绑包

plist 捆绑版本值

当您的 Gemfile 需要旧版本的捆绑器时,如何“捆绑安装”?

新型紧固工具链条捆绑拉紧器——大型卷钢长途运输捆绑固定必备神器