【发布时间】:2013-03-20 17:58:09
【问题描述】:
我也有课程和两个非 TYPO3 表。我将非 TYPO3 表定义为没有 uid、pid 等列的表。
我的两个班级:
- Tx_Abc_Domain_Model_Location 类扩展 Tx_Extbase_DomainObject_AbstractEntity
- Tx_Abc_Domain_Model_Facility 类扩展了 Tx_Extbase_DomainObject_AbstractEntity
我的两张表(带列):
- 位置
- 邮政编码
- 城市
- facility_id
- 设施
- facility_id
- 姓名
我已经像这样映射了属性:
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 查找位置时,它会为我构建一个包含设施模型的位置模型。
问题出现了,当我正在做的搜索返回几个结果时。即邮政编码为 12345 的位置有两个不同的设施(并且表位置有两行具有不同的设施 ID),那么我希望得到两个位置模型,并且每个位置模型都有正确的设施模型。
但是我得到了两个位置模型,它们内部都有相同的设施模型。他们拥有第一个发现地点的所有设施。
即使我将设施属性的类型更改为整数,也会有错误的 ID。但是,如果我在存储库中启用原始查询结果,我会得到正确的 ID。
当我向两个表中添加一个 uid 列时,我也得到了正确的 id 或模型。
是否无法将没有 uid 列的表与 Extbase 模型进行映射?
谢谢。
【问题讨论】:
标签: model-view-controller typo3 extbase