2015-02-06 117 views
0

是否可以收集並映射表單中的兩個字段到一個屬性?在symfony2中映射兩個字段

詳情:

我在實體有一個數組字段:

@ORM\Column(name="custom", type="simple_array") 

其中admin可以指定(多選)的產品定製選項 - 例如:

$product->setCustom(array('customText', 'customNumber')); 

所以用戶在他的訂單中應該有兩個字段 - 文本和數字。然後我想救他們:

$order->setCustomOptions(array(
    'customText' => 'Foo', 
    'customNumber' => '100', 
    )); 

order實體也只是數組字段類型,而不是simple_array。

用戶無法添加新選項,因此收集字段類型在我看來不是一個好選擇。 我也試過使用數據轉換器,但我認爲它只能應用於一個字段。

如果不清楚,告訴我。我不需要一個完整的解決方案,但提示什麼可以選擇。

+0

什麼類型是「simple_array」?你能否提供自定義類型定義? – DonCallisto 2015-02-06 11:02:42

+0

它是教義類型:http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html#array-types。我們可以假定只有數組是爲了簡單 – Brejk 2015-02-06 11:07:38

+0

我從來沒有使用它(事實上我並不知道這種類型),但我想你應該使用DataTransformer來從窗體收集一些自定義數據並將其轉換爲該基類型 – DonCallisto 2015-02-06 11:13:39

回答

0

最後,我在我的Entity中創建了兩個額外的字段(像DonCallisto建議的那樣),沒有映射到數據庫並將它們呈現在表單中。然後,我使用了一個使用@ORM\PrePersist@ORM\PreUpdate的setter來設置自定義值,而不是使用DataTransforem。

相關問題