【问题标题】:Doctrine inheritance in FlowFlow 中的教义继承
【发布时间】:2016-01-29 16:00:06
【问题描述】:

我正在尝试为我的 Typo3 Flow 项目设置一个基类。它应包含“创建于”和“更新于”日期。 由于 Doctrine 允许您使用继承映射,因此我想让我的基类成为“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;

    ...

组件.php:

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

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

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

那么可以在TYPO3 Flow中使用模型继承吗?

【问题讨论】:

    标签: doctrine-orm flow-framework


    【解决方案1】:

    我找到了一种方法。

    只需将您的 BaseClass 抽象化并添加所有附加注释,如下所示:

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

    然后像这样扩展你的模型:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 1970-01-01
      • 2015-12-21
      • 2023-04-08
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多