0

我正在使用没有虚拟机的 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'

如果 Entity 类是在它们上生成的,为什么 Doctrine 要求映射文件?

难道我做错了什么?

4

1 回答 1

0

Doctrine 2.2 要求您保留 xml 文件,即使它的 PHP 类是从它们逆向工程的。

于 2013-03-20T08:09:51.917 回答