Doctrine orm 流动中的学说继承

Doctrine orm 流动中的学说继承,doctrine-orm,flow-framework,Doctrine Orm,Flow Framework,我正试图为我的Typo3 Flow项目建立一个基类。它应该包含“创建日期”和“更新日期”。 因为条令允许您使用继承映射,所以我想让我的基类成为“MappedSuperclass” BaseClass.php: /** * @Flow\Entity * @ORM\MappedSuperclass */ class BaseClass { /** * @var \DateTime * @ORM\Column(type="datetime") */

我正试图为我的Typo3 Flow项目建立一个基类。它应该包含“创建日期”和“更新日期”。 因为条令允许您使用继承映射,所以我想让我的基类成为“MappedSuperclass”

BaseClass.php:

/**
 * @Flow\Entity
 * @ORM\MappedSuperclass
 */
class BaseClass {
    /**
     * @var \DateTime
     * @ORM\Column(type="datetime")
     */
    protected $created;

    /**
     * @var \DateTime
     * @ORM\Column(type="datetime")
     */
    protected $updated;

    ...
Component.php:

/**
 * @Flow\Entity
 * @ORM\InheritanceType("SINGLE_TABLE")
 */
class Component extends BaseClass{
如果我尝试使用“flow doctrine:update”命令,将弹出以下错误消息:

未捕获异常 实体“…\Domain\Model\BaseClass”没有方法 “Flow_Aop_Proxy_FixMethods and Advice SarrayforOctrineProxies”将 注册为生命周期回调


那么,在TYPO3流中使用模型继承是可能的吗?

我找到了一种方法

只需将基类抽象并添加所有附加注释,如下所示:

/**
 * @Flow\Entity
 * @ORM\MappedSuperclass
 */
abstract class BaseClass {
并像这样扩展您的模型:

/**
 * @Flow\Entity
 * @ORM\InheritanceType("SINGLE_TABLE")
 */
class SomeModel extends BaseClass{
SomeModel的表现在将具有来自基类的属性。但是基类本身并不表示在数据库模式中

也许你也能利用特征来解决更复杂的问题