Symfony3 错误命名空间不包含任何映射的实体


Symfony3 error Namespace does not contain any mapped entities

我尝试在Symfony 3.0.1中生成getters和setters

当我运行命令时

php bin/console doctrine:generate:entities VendorName/MyBundle/EntityName

我有错误

Namespace "VendorName'MyBundle'EntityName" does not contain any mapped entities.

错误在哪里?

编辑 1:首先使用 YAML 格式生成实体

编辑2:我尝试为供应商捆绑包生成吸气剂和设置器

我也尝试使用命令 php bin/console 原则:生成:实体供应商名称我的捆绑包:实体名称并有另一个错误:

Can't find base path for "VendorName'MyBundle'Entity'EntityName" (path: "/home/site/vendor/vendorname/mybundle/Entity", destination: "/home/site/vendor/vendorname/mybundle/Entity").  

正如John Pancoast在回答另一个问题时指出的那样:

Doctrine 在对代码生成执行任何操作时不支持 PSR-4。这与它们如何将类命名空间映射到文件系统路径以及 PSR-4 如何允许不直接映射到文件系统的类/命名空间路径有关。

https://github.com/doctrine/DoctrineBundle/issues/282

澄清解决错误消息的确切需求;您必须编辑分发包的composer.json文件,并更改分发包的文件夹结构。

composer.jsonpsr-4更改为psr-0

"autoload": {
    "psr-4": { "Acme''Bundle''AwesomeBundle''": "" }
},

自:

"autoload": {
    "psr-0": { "Acme''Bundle''AwesomeBundle''": "" }
},

将分发包的文件夹结构从:

vendor
 +--acme
     +--awesome-bundle
         |--Controller
         |--Entity

自:

vendor
 +--acme
     +--awesome-bundle
         +--Acme
             +--Bundle
                 +--AwesomeBundle
                     |--Controller
                     |--Entity

以下命令将不再引发异常:

bin/console doctrine:generate:entities AwesomeBundle

您的命令有误,您尝试生成实体,但您为一个实体提供了类名。对所有实体尝试以下操作:

php bin/console doctrine:generate:entities VendorName/MyBundle

或者,如果您只需要一个实体:

php bin/console doctrine:generate:entity VendorName/MyBundle/EntityName

Symfony 3.22 with src/AppBundle/Entity/User.php

如果您使用 ORM 添加新字段

**/**
 * @ORM'Column(name="last_login", type="datetimetz")
 */
private $lastLogin;**

只需使用

使用 PHP bin/console 原则:生成:实体 AppBundle

它将检查您的所有实体 r 并更新 getter 和 setter

然后使用

PHP bin/console 原则:模式:更新以更新数据库

PHP bin/console 原则:模式:更新 --PROD 环境中的强制