【发布时间】:2023-03-21 20:27:01
【问题描述】:
我有一个[Doctrine\ORM\ORMException] Unknown Entity namespace alias 'src\AppBundle\Entity'
错误信息。
快速搜索让我找到了三个相关的 SO 问题:
here关于 用户创建的捆绑包中的问题,我在这里没有使用。
here 在哪里 错误消息是通过 PHP 代码获得的,而不是像我目前正在做的那样在命令行中使用教义,并且
there 答案建议做 sudo php app/console cache:clear --env=dev ;我这样做了,然后是sudo chmod a+w app/cache/dev/annotations,但问题仍然存在。
这就是我所做的:
1) 使用php app/console doctrine:database:create成功创建我的数据库
2) 在app/Entity/Product.php 中手动创建一个Product Entity,内容如下(下面的代码是
从 Symfony Book 复制粘贴):
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\Column(type="decimal", scale=2)
*/
protected $price;
/**
* @ORM\Column(type="text")
*/
protected $description;
}
3) 类型 php app/console doctrine:generate:entities src/AppBundle/Entity:Product - 产生“未知实体命名空间”错误消息。
任何帮助表示赞赏。
【问题讨论】:
-
php app/console doctrine:generate:entities src/AppBundle/Entity:Product这是无效的。如果我没记错的话,最后一个参数应该是AppBundle:Product... -
@JovanPerovic 为什么?我不记得在任何地方都有这样的文档说明
-
@JovanPerovic 你是对的,如果最后一个参数被替换为
AppBundle:Product它可以工作 -
Symfony2应用程序中将使用/将使用两种语法。一个是\My\Company\Namespace\Entity\Product,另一个是MyCompanyNamespace:Product。我相信在代码/配置中的任何位置放置src都会违反PSR-0。Symfony2很好地看到了所有被认为是捆绑的东西。这就是为什么你必须在你的应用程序中至少有一个 - 所有的东西都是一个捆绑包。 -
@JovanPerovic 好的。现在你可以把你的cmets放在一个答案中,我会接受,或者我可以删除这个问题,你认为哪个最好