带有内联字段的Extbase mapOnProperty

时间:2017-08-04 14:25:58

标签: typo3 extbase

我有一个带有extbase模型的扩展,我想扩展它。适用于所有字段,“内联”字段除外。当我映射内联字段时,我没有收到所有子元素,只有一个带有计数器的子元素作为uid。

示例:内联字段“description”有三个子节点(uid = 17,uid = 18,uid = 19),因此字段tx_firstextension_domain_model_job.description包含数字3.在前端,我有一个ObjectStorage,只包含一个描述模型(uid = 3)

这是我的TypoScript:

config.tx_extbase {
  objects.Foo\FirstExtension\Domain\Model\Job.className = Bar\SecondExtension\Domain\Model\Job
  persistence.classes.Bar\SecondExtension\Domain\Model\Job.mapping {
    table = tx_firstextension_domain_model_job
    columns {
      description.mapOnProperty = description
      anyotherfield.mapOnProperty = anyotherfield
      onemorefield.mapOnProperty = onemorefield
    }
  }
}

我的问题是错误的配置选项。正确是 tableName ,但我使用。这是更正的 - 结束更简单 - 片段:

config.tx_extbase {
  objects.Foo\FirstExtension\Domain\Model\Job.className = Bar\SecondExtension\Domain\Model\Job
  persistence.classes.Bar\SecondExtension\Domain\Model\Job.mapping {
    tableName = tx_firstextension_domain_model_job
  }
}

1 个答案:

答案 0 :(得分:0)

您的Job-Models配置中似乎存在配置错误。请检查以下内容:

  1. 在模型(Job.php)中是否将属性描述配置为ObjectStorage(包括正确的getter和setter函数+注释)并在__construct函数中将属性实例化为ObjectStorage?

  2. 是否在TCA配置文件Configuration / TCA / tx_secondextension_domain_model_job.php

  3. 中将字段正确配置为“inline”类型

    可能您必须扩展第一个扩展的TCA,以便在扩展其他扩展时进行内联工作。那么你可能需要将字段描述添加到Configuration / TCA / Overrides / tx_firstextension_domain_model_job.php,但我不确定这是否真的有必要......