Model view controller 使用非TYPO3表的Extbase映射

Model view controller 使用非TYPO3表的Extbase映射,model-view-controller,typo3,extbase,Model View Controller,Typo3,Extbase,我有太多的课和两张非打字表。我将非类型表定义为没有uid、pid等列的表 我的两个班: 类Tx\u Abc\u Domain\u Model\u Location扩展Tx\u Extbase\u DomainObject\u AbstractEntity 类Tx\u Abc\u Domain\u Model\u工具扩展Tx\u Extbase\u DomainObject\u AbstractEntity 我的两个带列的表: 位置 zipcode 城市 设施标识 设施 设施标识 名称 我映射了如

我有太多的课和两张非打字表。我将非类型表定义为没有uid、pid等列的表

我的两个班:

类Tx\u Abc\u Domain\u Model\u Location扩展Tx\u Extbase\u DomainObject\u AbstractEntity 类Tx\u Abc\u Domain\u Model\u工具扩展Tx\u Extbase\u DomainObject\u AbstractEntity 我的两个带列的表:

位置 zipcode 城市 设施标识 设施 设施标识 名称 我映射了如下属性:

config.tx_extbase.persistence.classes {
  Tx_Abc_Domain_Model_Location.mapping {
    tableName = locations
    columns {
        zipcode.mapOnProperty = zipcode
        city.mapOnProperty = city
        facility_id.mapOnProperty = facility
    }
  }
  Tx_Abc_Domain_Model_Facility.mapping {
    tableName = facilities
    columns {
        facility_id.mapOnProperty = uid
        name.mapOnProperty = name
    }
  }
}
我的问题是:

我的位置模型的设施属性的类型为Tx_Abc_Domain_model_facility,当我通过LocationRepository查找位置时,它会为我构建一个包含设施模型的位置模型

问题出现了,当我搜索我正在做的返回几个结果。i、 e.zipcode为12345的位置有两个不同的设施,表位置有两行不同的设施ID,那么我希望得到两个位置模型,每个都有正确的设施模型

但我得到的是两个位置模型,里面都有相同的设施模型。他们拥有第一个发现地点的所有设施

即使我将facility属性的类型更改为integer,也存在错误的ID。但如果我在存储库中启用原始查询结果,我将获得正确的ID

当我向两个表中添加uid列时,我也会得到正确的ID或模型

是否不可能将没有uid列的表映射到Extbase模型


谢谢。

好的,我最后一个问题的答案是:是的,没有uid列的表不可能映射到Extbase模型

forge上有一张现有票据:


原因似乎是Tx_Extbase_Persistence_Mapper_DataMapper类中mapsingerrow方法中硬编码的$row['uid'.

好的,我最后一个问题的答案是:是的,不可能用Extbase模型映射没有uid列的表

forge上有一张现有票据:


原因似乎是Tx_Extbase_Persistence_Mapper_DataMapper类中mapsingerrow方法中硬编码的$row['uid'.

如果需要映射的表不多,一种解决方法可能是为这些表创建视图,以便只映射uid

即:


如果需要映射的表不是很多,那么一个解决方法就是为这些表创建视图,以便只映射uid

即:

CREATE VIEW tx_abc_domain_model_facility AS
    SELECT facility_id AS uid, facilities.* FROM facilities;