簡體   English   中英

流中的學說繼承

[英]Doctrine inheritance in Flow

我正在嘗試為我的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;

    ...

Component.php:

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

如果我嘗試使用“ flow doctrine:update”命令,則會彈出以下錯誤消息:

未捕獲的異常實體'... \\ Domain \\ Model \\ BaseClass'沒有方法'Flow_Aop_Proxy_fixMethodsAndAdvicesArrayForDoctrineProxies'要注冊為生命周期回調。

那么可以在TYPO3 Flow中使用模型繼承嗎?

我發現了一種方法。

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

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

然后像這樣擴展您的模型:

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

SomeModel表現在將具有BaseClass的屬性。 但是BaseClass本身未在數據庫模式中表示。

也許您也可以將特征用於更復雜的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM