2016-11-21 115 views
1

您好我有一個實體,其中有一個字段名爲「電子郵件」:所以我實現了多個選擇框將其存儲在數據庫中,用戶可以分配多個電子郵件。選項是靜態的如何在單個字段中存儲多選的值Symfony2

enter image description here

那麼,什麼樣的數據類型將是更好地將其存儲到一個字段在MySQL。所以在編輯頁面上,也需要保持選中狀態。

我在使用symfony2和mysql。

請提前

+1

也許這是'OneToMany'原則關係?我想你需要一個實體(例如用戶),另一個(電子郵件)包含電子郵件。所以一個用戶可以選擇多個電子郵件。有關更多信息,請參閱[this](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-associations.html)。 –

+0

是的,我在想,那件事..謝謝 –

+0

如果它不是與另一個實體的關係,它將是一個集合,如果不是,您可以在實體中指定該字段爲「數組」。 – progg

回答

4

簡短的回答是建議

感謝:災難不存儲多個值的單一領域,這種配方。修改和搜索這些領域是一場噩夢。 stackoverflow充滿了這樣的問題。

正確的解決方案是將每個值存儲在其自己的記錄中單獨的表中。所以,你的實體表可能會有一個唯一標識實體的id字段。有另一個名爲entity_emails_to的表格,其中包含實體ID和電子郵件字段。如果一個實體有3個收件人,那麼在該表中將有3個記錄用於該實體。

+0

是對的。您需要實現m:n關係才能正確存儲。 –

+0

使它成爲一個簡單的文本字段(而不是選擇),並定義一個新的設置,放置可用標記列表(LOCATION_OWNER等)。然後,您可以像使用select2一樣認爲您正在執行此操作,只需將結果與「;」結合並將它們保存爲字符串即可。這個解決方案如何? –

+0

對不起,但我不明白你在做什麼。 – Shadow

相關問題