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

时间:2012-09-06 19:39:29

标签: symfony symfony-2.1 symfony-sonata sonata-admin

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

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

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



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

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

任何人都知道如何解决这个问题?

7 个答案:

答案 0 :(得分:31)

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

在Sonata用户套装设置期间,建议您将 doctrine:orm 映射到 ApplicationSonataUserBundle ,这在奏鸣曲:easy-extends期间无法完成:生成SonataUserBundle ,因为ApplicationSonataUserBundle尚不存在。

所以在推出你的奏鸣曲:easy-extends:生成SonataUserBundle 命令之前,你可以评论 ApplicationSonataUserBundle 行:

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

然后你启动奏鸣曲:easy-extends:generate SonataUserBundle 命令, 最后,删除*** ApplicationSonataUserBundle上的注释(#):〜**

捆绑“ApplicationSonataUserBundle”不存在或未启用错误消失。

祝你有个美好的一天。

答案 1 :(得分:22)

在运行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:生成SonataUserBundle -d src"

现在恢复步骤1,2和3

答案 2 :(得分:2)

我通过从config.yml删除对Application \ Sonata \ UserBundle \ Entity \ User和Application \ Sonata \ UserBundle \ Entity \ Group的引用并从AppKernel删除'new Application \ Sonata \ UserBundle \ ApplicationSonataUserBundle()'来安装它.PHP。

然后运行easy extends generate命令,然后将引用放入。我认为文档已经让这些步骤混淆了一些。在config.yml中存在之前,您无法引用它。

答案 3 :(得分:2)

您好我面临同样的问题。但我可以解决这个问题。让我们看看我在做什么:

在命令中:

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

然后在AppKernel File中写:

new Application\Sonata\UserBundle\ApplicationSonataUserBundle

现在这样做了;)

这个命令

sonata:easy-extends:generate SonataUserBundle

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

答案 4 :(得分:1)

您的步骤是正确的,除非它已在“app /”文件夹中创建了您的ApplicationSonataAdminBundle,因此您应该剪切此生成的ApplicationSonataAdminBundle并粘贴到“src /”文件夹中。

答案 5 :(得分:0)

那么,该命令是第5步,您需要先执行前4个步骤才能运行第5步。

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

答案 6 :(得分:0)

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

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