我們正在考慮將我們的數據庫代碼在php中遷移到Doctrine2。在我們看來,我們希望做的大部分事情都可以通過Doctrine2來實現。只有一件事我們不確定是否可行,我們應該怎麼做。我們的數據庫模型現在無法更改,因爲另一個項目使用相同的數據庫。我們一次只能改變一件事。當然,我們也很好奇如何改進數據庫模型,但這不是我們主要關心的問題。將表格行中的數據映射到Doctrine2對象中的屬性
問題是這樣的。我們有一個包含這樣的基本產品信息的產品表:
[product_id | code | name | description | price]
4 AS84GD Steel brush Strong steel brush..... 25.50
28 HDD21N Sand paper Sand paper for wood..... 0.40
等
我們有我們的產品不同的用戶,其人有不同的額外的產品性能。因此,我們有一個product_extra_field表,它看起來是這樣的:
[extra_field_id | name]
3 weight
4 color
9 supplier
,最後用額外的數據product_extra_field_data表
[product_id | extra_field_id | value]
4 3 280
4 4 brown
4 9 company_x
28 3 3
28 4 yellow
28 9 company_y
我們如何正確的必要Doctrine2代碼在一個對象得到這個數據,所以我們可以有這樣的對象?
[Product]
Id : 4
Code : AS84GD
Name : Steel brush
Description : Strong steel brush.....
Price : 25.50
Weight : 280
Color : brown
Supplier : company_x
我已經爲Hibernate添加了一個標籤,因爲我可以讀取(N)Hibernate代碼並將其轉化爲Doctrine2。
我認爲你的意思是這個部分http://docs.doctrine-project.org/en/latest/reference/native-sql.html#named-native-query? Doctrine2是否根據SELECT語句生成INSERT,UPDATE和DELETE語句? –
@munnik我從來沒有使用過這個,只有這個:http://docs.doctrine-project.org/en/latest/reference/native-sql.html#resultsetmappingbuilder爲了檢索對象,而不是更新/插入。但是,也許'命名本機查詢'可以處理,不知道,你必須測試它。讓我知道它是否有效。我很好奇。 –