另一个未知实体命名空间别名错误(Symfony2,手动创建的实体)
Posted
技术标签:
【中文标题】另一个未知实体命名空间别名错误(Symfony2,手动创建的实体)【英文标题】:Yet another Unknown Entity namespace alias error (Symfony2, manually created entity) 【发布时间】:2016-02-03 07:05:04 【问题描述】:我有一个[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放在一个答案中,我会接受,或者我可以删除这个问题,你认为哪个最好
【参考方案1】:
在您的Symfony2
应用程序中将使用/将使用两种语法。
\My\Company\Namespace\Entity\Product
MyCompanyNamespace:Product
我认为在您的代码/配置中的任何位置放置src
将违反PSR-0
。 Symfony2
很好地看到了所有东西都被认为是一个捆绑包。这就是为什么你必须在你的应用程序中至少有一个——所有的东西都是一个捆绑包
【讨论】:
以上是关于另一个未知实体命名空间别名错误(Symfony2,手动创建的实体)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用doctrine查询symfony2中实体类中的另一个实体
我应该在另一个命名空间中使用实体框架 DBContext 的部分类吗