我试图弄清楚超类映射在Doctrine2中是如何工作的,我有一些例子可以使用,但是我一直在使用xml映射来创建我的实体,然后又使用数据库架构。我找到了一个展示“延伸”的例子。 '实体的参数' tag,但在当前架构中似乎不支持它。
如何告诉XML驱动程序哪些类应该扩展映射的超类?
SW
答案 0 :(得分:0)
如何告诉XML驱动程序哪些类应该扩展映射的超类?
您不必:)
您可以简单地创建一个抽象类(让它命名为My\First\BaseClass
)并在XML中定义一个Mapped Superclass:
<?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"
>
<mapped-superclass name="My\First\BaseClass">
<!-- fields, etc -->
</mapped-superclass>
</doctrine-mapping>
接下来有一个Entity类扩展这个Mapped Superclass。你甚至可以有一个Entity类来扩展Mapped Superclass,而后者又扩展了另一个Mapped Superclass。
重点是:Doctrine足够聪明,可以遍历所有XML映射文件,以便根据类继承确定完整的映射元数据集。您无需在XML中指定图形。