[英]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.