Doctrine 2和Zend 1.11转换映射错误..

Kar*_*hik 9 php doctrine zend-framework zend-db doctrine-orm

我有一个复杂的数据库设计,包含视图,关系等.我们决定从标准的Zend_db切换到ORM.我成功地整合了zend 1.11和doctrine 2.1.所有教程都解释了如何通过手写类创建整个数据库.但是现有数据库中有数据呢?我再次搜索并发现我必须使用以下命令

php orm:convert-mapping --from-database php path/where/you/want/to/store/mapping/classes
Run Code Online (Sandbox Code Playgroud)

当我为一个只有3个表且没有任何关系的简单数据库执行此操作时,上述命令可以很好地工作.

但是当我尝试在我的数据库上使用相同的命令时,它会抛出一个异常

[Doctrine\ORM\Mapping\MappingException]

Property "employeeid" in "Organization_has_employees" was already declared, but it must be
declared only once
Run Code Online (Sandbox Code Playgroud)

我更改了所有的字段名称,以便在任何表中都没有重复的名称,但仍然没有运气.

请帮我解决一下这个.我打破了我的头超过3天.

KARTHIK

Kar*_*hik 12

经过几个小时的实验,我发现了问题所在.显然,它不是在Doctrine中,而是我设计的数据库.当您在MySQL Workbenck中执行"多对多"表时,您将被迫执行"识别关系",这将创建另一个表并从父表创建组合键.请确保以不同方式命名此主键,或者如果可能,请删除复合键并将其仅作为非标识关系.添加另一个名为id的列,并将此字段作为主键并自动编号

Doctrine工具也存在缓存问题,因此请确保每次进行更改时重命名数据库并在zend配置中更改它.

希望这有助于那里的人.如果您仍有问题,请在此处发布您的问题我将能够回答.