我正在尝试使用创建一个Doctrine实体:

php app/console doctrine:generate:entity --entity="AWStudio:Category" --fields="name:string(255)" --no-interaction


但我不能,这返回:


  [InvalidArgumentException]捆绑软件“ AWStudio”不存在或未启用。也许您忘记了将其添加到AppKernel.php文件的registerBundles()方法中?


有我的APPKernel.php

<?php

use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;

class AppKernel extends Kernel
{
    public function __construct($environment, $debug)
    {
        date_default_timezone_set('Europe/Paris');
        parent::__construct($environment, $debug);
    }

    public function registerBundles()
    {
        $bundles = array(
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\SecurityBundle\SecurityBundle(),
            new Symfony\Bundle\TwigBundle\TwigBundle(),
            new Symfony\Bundle\MonologBundle\MonologBundle(),
            new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
            new Symfony\Bundle\AsseticBundle\AsseticBundle(),
            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
            new AWStudio\AWCoreBundle\AWCoreBundle(),
            new \FOS\UserBundle\FOSUserBundle(),
            new \AWStudio\AWUserBundle\AWUserBundle(),
            new AWStudio\CKSBundle\AWStudioCKSBundle(),
            new JMS\AopBundle\JMSAopBundle(),
            new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
            new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
            new FOS\JsRoutingBundle\FOSJsRoutingBundle,
            new JMS\SerializerBundle\JMSSerializerBundle(),
            new Liuggio\ExcelBundle\LiuggioExcelBundle(),
            new JMS\TwigJsBundle\JMSTwigJsBundle(),
            new RaulFraile\Bundle\LadybugBundle\RaulFraileLadybugBundle(),
            new JMS\DiExtraBundle\JMSDiExtraBundle($this),
            new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
            new \Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
            new \Fresh\Bundle\DoctrineEnumBundle\FreshDoctrineEnumBundle(),
            new Corley\MaintenanceBundle\CorleyMaintenanceBundle(),
            new Sonata\CoreBundle\SonataCoreBundle(),
            new Sonata\BlockBundle\SonataBlockBundle(),
            new Knp\Bundle\MenuBundle\KnpMenuBundle(),
            new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
            new Sonata\AdminBundle\SonataAdminBundle()
        );

        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
            $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
        }

        return $bundles;
    }

    public function registerContainerConfiguration(LoaderInterface $loader)
    {
        $loader->load(__DIR__ . '/config/config_' . $this->getEnvironment() . '.yml');
    }
}


谢谢 ! :)

最佳答案

您需要为命令指定捆绑软件的完整名称。 AWStudio实际上是您的供应商名称。

我可以看到您在AWStudio供应商中有三个捆绑软件:AWCoreBundleAWUserBundleCKSBundle

假设您要在AWCoreBundle中添加您的实体,这是命令:

php app/console doctrine:generate:entity --entity="AWStudioAWUserBundle:Category" --fields="name:string(255)" --no-interaction


注意AWStudio之后的AWUserBundle捆绑包名称。

10-06 08:12