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 城市 设施标识 设施 设施标识 名称 我映射了如下属性: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 城市 设施标识 设施 设施标识 名称 我映射了如
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;