2011-03-07 32 views
1

我写我的实体,让我们说模型/文件夹。我真的需要用Doctrine 2自己移动/写实体吗?

类似:

namespace Organisation\User; 
/** 
@Entity 
*/ 
class Customer { 

/** 
* @Column(type="integer") @GeneratedValue 
*/ 
protected $_id; 
} 

}

因此,我将我的实例化实体$customer = new \Organisation\User\Customer();

好了,但如果我用doctrine orm:generate-entities library/就会产生它下面的目录下:

library/Organisation/User/Customer.php 

没关系,但如果我看在代码中,没有任何注释,因此当我尝试使用它时,我得到了doctrine\ORM\Mapping\MappingException: Class Organisation\User\Customer is not a valid entity or mapped super class.,因为没有任何注释。

所以我需要做的是删除命名空间,生成到具有元数据信息的实体所在的目录中,移动到我的库文件夹,并添加命名空间来处理。

它看起来很丑,我错过了什么吗?

编辑我忘了告诉ORM:生成实体不起作用递归的话,我甚至不能我的实体元数据

回答

0

中使用我的实际结构如果你写你的实体类已经存在,你为什么试图生成它们?

驱动新项目的典型方法是编写注释的实体类,并使用orm:schema-tool:create来生成数据库模式。

我见过的大多数例子都是基于类的名称空间名称,将一些实体粘贴到库/下的某个嵌套目录中,就像您所描述的那样。这通常是件好事,因为它可以使用默认的Doctrine2自动加载器设置。

如果你不试图将Doctrine2到一个已经存在的数据库模式,我建议你简单地把所有喜欢的库//实体/ .PHP你的实体类文件的某个地方,并使用orm:schema-tool:updateorm:schematool:update管理数据库为你。

0

使用参数--generate-annotations