私もクラスと 2 つの非 TYPO3 テーブルを持っています。非 TYPO3 テーブルを、uid、pid などの列のないテーブルとして定義しました。
私の2つのクラス:
- クラス Tx_Abc_Domain_Model_Location は Tx_Extbase_DomainObject_AbstractEntity を拡張します
- クラス Tx_Abc_Domain_Model_Facility は Tx_Extbase_DomainObject_AbstractEntity を拡張します
私の2つのテーブル(列あり):
- 場所
- 郵便番号
- 街
- 施設ID
- 設備
- 施設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 の場所には 2 つの異なる施設があり (テーブルの場所には異なる facility_id を持つ 2 つの行がある)、2 つの場所モデルを取得し、それぞれが適切な施設モデルを取得することを期待します。
しかし、代わりに、すべて同じ施設モデルを内部に持つ 2 つのロケーション モデルを取得します。彼らは最初に見つけた場所のすべての施設を手に入れました。
施設属性のタイプを整数に変更しても、間違った ID があります。しかし、リポジトリで生のクエリ結果を有効にすると、正しい ID が取得されます。
両方のテーブルに uid 列を追加すると、正しい ID またはモデルも取得されます。
Extbase モデルで uid 列のないテーブルをマップする可能性はありませんか?
ありがとう。