【发布时间】:2016-10-31 11:05:13
【问题描述】:
我一直在研究 Zend Framework 和 Doctrine。 我是新手,所以请原谅我问愚蠢的事情
直到现在一切都很好,我正在创建我的实体并使用 DocBlock Annotations 映射它们。
现在我想为我的实体使用 XML 映射。
我创建了一个类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'
)
)
),
),
问题:
- 我可以在一个模块中同时使用 DocBlock 和 Xml 映射吗?
- 如果我只想使用 Xml 映射,需要做什么?
- 我上面做错了什么。
【问题讨论】:
标签: php xml doctrine-orm zend-framework2 doctrine