1

我正在尝试为我的 Typo3 Flow 项目设置一个基类。它应包含“创建于”和“更新于”日期。由于 Doctrine 允许您使用继承映射,我想将我的基类设为“MappedSuperclass”。

基类.php:

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

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

    ...

组件.php:

/**
 * @Flow\Entity
 * @ORM\InheritanceType("SINGLE_TABLE")
 */
class Component extends BaseClass{

如果我尝试使用“流学说:更新”命令,则会弹出以下错误消息:

未捕获的异常实体“...\Domain\Model\BaseClass”没有方法“Flow_Aop_Proxy_fixMethodsAndAdvicesArrayForDoctrineProxies”要注册为生命周期回调。

那么在TYPO3 Flow中是否可以使用模型继承呢?

4

1 回答 1

1

我找到了一种方法。

只需使您的 BaseClass 抽象并添加所有其他注释,如下所示:

/**
 * @Flow\Entity
 * @ORM\MappedSuperclass
 */
abstract class BaseClass {

并像这样扩展您的模型:

/**
 * @Flow\Entity
 * @ORM\InheritanceType("SINGLE_TABLE")
 */
class SomeModel extends BaseClass{

SomeModel 的表现在将具有来自BaseClass的属性。但是 BaseClass 本身并没有在数据库模式中表示。

也许您还可以将特征用于更复杂的解决方案。

于 2015-03-24T12:46:18.527 回答