我一直致力于 Zend Framework 和 Doctrine 。 我是新手所以请原谅我提出愚蠢的事情
直到现在一切都很顺利,我正在创建我的实体并使用DocBlock Annotations映射它们。
现在我想为我的实体使用XML Mapping。
我创建了一个类Test.php
,如下所示:
<?php
namespace Alpha\Entity;
class Test {
protected $id;
protected $name;
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
我正在使用以下Test.dcm.xml
进行XML映射:
<?xml version="1.0" encoding="UTF-8" ?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Alpha\Entity\Test" table="test">
<id name="id" type="integer">
<generator strategy="AUTO" />
</id>
<field name="name" type="string" length="100" />
</entity>
</doctrine-mapping>
当我尝试使用以下命令更新数据库时:
doctrine-module orm:schema-tool:update --force --dump-sql
我什么都没得到,它说数据库架构是最新的。我收到这条消息:
无需更新 - 您的数据库已与当前数据库同步 实体元数据。
我已经在module.config.php中定义了我的实体并定义为使用XmlDriver,请参阅下面的代码:
'doctrine' => array(
'driver' => array(
'alpha_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\XmlDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Alpha/Entity')
),
'orm_default' => array(
'drivers' => array(
'Alpha\Entity' => 'alpha_driver'
)
)
),
),
问题:
答案 0 :(得分:1)
更改配置路径,因为它们指向错误的目录,例如:
'doctrine' => array(
'driver' => array(
'alpha_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\XmlDriver',
'cache' => 'array',
// do not use directory separator after paths
'paths' => array('.dcm.xml/files/dir')
),
'orm_default' => array(
'drivers' => array(
'Alpha\Entity' => 'alpha_driver'
)
)
),
),
Alpha.Entity.Test.dcm.xml
没有关于此的文档,但它应该是这样的