如何解决PHP应用程序捆绑/控制台产生:学说:CRUD(How to address the bun

2019-06-27 10:30发布

在我的symfony项目,我必须在一个包

src/Cinergy/Bundle/PeopleServiceBundle

现在,我想基于一个理论实体CRUD控制器,但我一直无法进入该实体参数正确的字符串。

我尝试了诸如:

php app/console generate:doctrine:crud --entity=Cinergy/Bundle/PeopleServiceBundle:Group

要么

php app/console generate:doctrine:crud --entity=@PeopleServiceBundle:Group

他们都返回错误回报,如:

[Doctrine\ORM\ORMException]                             
Unknown Entity namespace alias '@PeopleServiceBundle'.

什么是对正确的语法--entity参数? 或者是有什么遗漏毕竟?

这是目录结构的外观现在:

src/Cinergy/Bundle/PeopleServiceBundle/
├── Controller
│   ├── GroupController.php
│   └── PersonController.php
├── DependencyInjection
│   ├── Configuration.php
│   └── PeopleServiceExtension.php
├── PeopleServiceBundle.php
├── Resources
│   ├── config
│   │   ├── routing.yml
│   │   └── services.yml
│   ├── doc
│   │   └── index.rst
│   ├── public
│   │   ├── css
│   │   ├── images
│   │   └── js
│   ├── translations
│   │   └── messages.fr.xliff
│   └── views
│       └── Default
│           └── index.html.twig
└── Tests
    └── Controller
        ├── GroupControllerTest.php
        └── PersonControllerTest.php

Answer 1:

毕竟事实证明,我要创建实体之前,我可以为它创建的CRUD控制器。 当然,这是有道理的。 不幸的是, Sensio公司发生器管束文档确实列出其把我推到了错误的方向oposite顺序操作。

这意味着正确的顺序IST

  1. 生成新的捆绑骷髅
  2. 生成一个新的学说实体存根
  3. 在学说基于实体生成CRUD控制器


Answer 2:

首先,你需要你的包注册到您的AppKernel

然后只需运行下面的命令。
不要把@集的名称前

php app/console generate:doctrine:crud --entity=PeopleServiceBundle:Group

更多关于生成基于一个学说实体CRUD控制器 。



Answer 3:

根据symfony的文档,你必须使用“给出包含在其中的实体所在的包名称和tvhe实体的名称的快捷符号的实体名称”,所以它应该是这样的

--entity=CinergyPeopleServiceBundle:Group


Answer 4:

如果你有一个以上的捆绑,并要使用不同的数据库连接只是通过增加配置和参数更新config.yml和parameters.yml。

这将解决CRUD生成问题。



Answer 5:

我搜索小时,直到我发现下doctrine.orm我的应用程序/配置/ config.yml我删除auto_mapping: true造成这个问题。 这可能是为别人有用:)



Answer 6:

如果仍然有人:)家伙相关,这是因为DoctrineBundle DoctrineExtension编译基于所有注册捆绑有效的别名,有“实体”(或其他配置)在他们的文件夹列表中。

因此,为了使用原则:生成:CRUD或产生:学说:污物,你必须创建只是在你的包文件夹的实体,而不是需要先创建实体(如命令的意思是 - 这是真的)。

所以,你会工作,如果你已经有一些实体组合中的,或者如果你在你的包刚刚空实体的文件夹。



文章来源: How to address the bundle in php app/console generate:doctrine:crud