在Typo3中保留值对象

时间:2019-01-18 16:04:42

标签: typo3 extbase

我有一个df = df.drop(columns='DSP Code') 类,它使用属性Money(整数)和AbstractValueObject(字符串)扩展了$amount。我有一个$currency,它的一个AbstractEntity属性保存着一个$price的实例。我如何获得Typo3来保存该值对象?如何定义映射?

来自教义,我希望它能在两列Moneyprice_amount中保留。

1 个答案:

答案 0 :(得分:1)

Extbase的处理方式有所不同-value objects需要存储在自己的表中,而对象之间的关系则通过使用标识符来存储,就像实体一样。
实体和VO之间的唯一真正区别是,持久性管理器在寻找用于持久性的VO时将使用property values(标识符字段除外),而identifier将用于实体。

  • 因此,您需要将值对象的database schema添加到ext_tables.sql,并且该表应包含一个自动递增的uid字段以及VO所需的字段。确保在amountcurrency列上创建组合的唯一索引。
  • 定义TCA映射,然后您可以直接持久化值对象(如果创建存储库),也可以将它们附加到聚合根对象并持久化。

您实体上的price属性在数据库架构中应为整数,因为extbase将存储对VO的uid的引用(如果您仅引用实体上的一个Money对象),并且您希望存储collection的Money对象,Extbase将存储您的实体对象和Money VO之间的关系数。