我尝试在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.json
将psr-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 环境中的强制