Doctrine 2.2 ORM:从数据库进行逆向工程后抛出 MappingException
Posted
技术标签:
【中文标题】Doctrine 2.2 ORM:从数据库进行逆向工程后抛出 MappingException【英文标题】:Doctrine 2.2 ORM: After reverse-engineering from database MappingException is thrown 【发布时间】:2013-02-04 16:43:28 【问题描述】:我正在使用 Zend Framework 样板,没有虚拟机。
我的 Application.ini,如下所示:
;resources.doctrine.orm.entityManagers.default.metadataDrivers.annotationRegistry.annotationFiles[] = APPLICATION_PATH "/../library/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.adapterClass = "Doctrine\ORM\Mapping\Driver\XmlDriver"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingNamespace = "Square\Entity"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingDirs[] = APPLICATION_PATH "\..\library\Square\Entity"
;resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader"
;resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderCache = default
;resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderNamespaces.Square = "Square\Entity"
我已经在 CLI 中运行了该命令,就像这里的示例一样:
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html#reverse-engineering
更具体地说是这个:
$ php doctrine orm:convert-mapping --from-database xml /path/to/mapping-path-converted-to-xml
这使用以下命名架构生成了我的 xml 文件:Entity.dcm.xml
我已经根据这些 XML 文件生成了我的实体类,然后尝试使用以下命令保存到数据库中:
try
$this->_em->persist($this->_apikey);
$this->_em->flush();
catch (Exception $e)
echo "Something went bad --> ".$e;
$this->_apikey = new Square\Entity\Apikeys();
在构造方法中的位置。
实体管理器抛出异常:
exception 'Doctrine\ORM\Mapping\MappingException' with message 'No mapping file found'
如果实体类是在它们上生成的,为什么 Doctrine 要求映射文件?
我是不是做错了什么?
【问题讨论】:
你的实体名为 APIkeys.php 吗? @mpm:是的!我的实体名为 APIkeysdoctrine
命令是否使用与您的应用程序相同的引导过程?
【参考方案1】:
Doctrine 2.2 要求您保留 xml 文件,即使它的 PHP 类从它们进行逆向工程。
【讨论】:
以上是关于Doctrine 2.2 ORM:从数据库进行逆向工程后抛出 MappingException的主要内容,如果未能解决你的问题,请参考以下文章
Doctrine异常 - [Doctrine ORM Mapping MappingException]
Zend2 框架 - 给映射异常的 Doctrine ORM