Php Symfony3错误命名空间不包含任何映射实体
我尝试在Symfony 3.0.1中生成getter和setter 当我运行命令时Php Symfony3错误命名空间不包含任何映射实体,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,我尝试在Symfony 3.0.1中生成getter和setter 当我运行命令时 php bin/console doctrine:generate:entities VendorName/MyBundle/EntityName 我有错误 Namespace "VendorName\MyBundle\EntityName" does not contain any mapped entities. 哪里出错了? 编辑-1:首先生成YAML格式的实体 Edit-2:我尝试为供应商包生成get
php bin/console doctrine:generate:entities VendorName/MyBundle/EntityName
我有错误
Namespace "VendorName\MyBundle\EntityName" does not contain any mapped entities.
哪里出错了?
编辑-1:首先生成YAML格式的实体 Edit-2:我尝试为供应商包生成getter和setter 我还尝试使用命令php bin/console原则:generate:entities vendornameybundle:EntityName,但出现另一个错误:
Can't find base path for "VendorName\MyBundle\Entity\EntityName" (path: "/home/site/vendor/vendorname/mybundle/Entity", destination: "/home/site/vendor/vendorname/mybundle/Entity").
正如他在报告中对另一个问题所指出的:
在代码生成方面,条令不支持PSR-4。这与它们如何将类名称空间映射到文件系统路径以及PSR-4如何允许不直接映射到文件系统的类/名称空间路径有关
澄清解决错误信息所需的具体内容;您必须编辑捆绑包的composer.json
文件,并更改捆绑包的文件夹结构
在composer.json
中将psr-4
更改为psr-0
:
"autoload": {
"psr-4": { "Acme\\Bundle\\AwesomeBundle\\": "" }
},
致:
从以下位置更改捆绑包的文件夹结构:
vendor
+--acme
+--awesome-bundle
|--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
带有src/AppBundle/Entity/User.php的Symfony 3.22 如果使用ORM添加新字段
**/**
* @ORM\Column(name="last_login", type="datetimetz")
*/
private $lastLogin;**
只用
使用php bin/console原则:生成:实体AppBundle
它将检查所有实体的getter并更新getter和setter
然后使用
php bin/console原则:schema:update更新数据库
使用
php bin/console原则:schema:update--force在PROD环境中您是第一次生成带有注释映射的实体类吗?(或者YAML、XML映射等等)。这里是.First使用YAML格式生成实体您的实体类的路径是什么<代码>MyBundle\Entity\EntityName?
VendorNameMyBundle
是有效且已注册的捆绑包名称吗?VendorNameMyBundle是有效且已注册的捆绑包名称EntityName.php文件保存在哪里?EntityName.php中的名称空间值是多少?什么是EntityName.php中的类名?对于这个“使用php bin/console原则:生成:entities AppBundle”,我总是指定实体,但只指向一个捆绑包更容易。
php bin/console doctrine:generate:entity VendorName/MyBundle/EntityName
**/**
* @ORM\Column(name="last_login", type="datetimetz")
*/
private $lastLogin;**