15

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

我一步一步按照安装教程进行操作,但出现此错误:

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



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

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

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

4

7 回答 7

31

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

在 Sonata User Bundle 设置过程中,建议您将dictionary :orm映射到ApplicationSonataUserBundle ,这在sonata:easy-extends:generate SonataUserBundle期间无法完成,因为 ApplicationSonataUserBundle 尚不存在。

所以在启动你的奏鸣曲: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: ~

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

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

祝你有美好的一天。

于 2013-10-08T12:21:17.463 回答
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:generate SonataUserBundle -d src"

现在还原步骤 1、2 和 3

于 2014-07-05T16:28:50.677 回答
2

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

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

于 2013-04-02T10:04:33.867 回答
2

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

在命令中:

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

然后在 AppKernel 文件中写入:

new Application\Sonata\UserBundle\ApplicationSonataUserBundle

现在这是工作;)

而这个命令

sonata:easy-extends:generate SonataUserBundle

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

于 2013-12-12T07:43:19.590 回答
1

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

于 2014-07-06T09:45:55.863 回答
0

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

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

于 2012-09-07T22:21:11.383 回答
0

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

sonata_user:
    class:
        user: Acme\UserBundle\Entity\User
        group: Acme\UserBundle\Entity\Group
于 2015-10-12T14:32:08.520 回答