2017-03-09 43 views
3

的設置無法從s58c147845272f_products_2_suppliers_0_contacts故障部件元素ID:接觸sonata_admin symfony3

我使用的Symfony 3 SonataAdminBundle 3.1項目。

我使用奏鳴曲管理的嵌套形式,方法,在那裏我有4個實體:

類別,產品,供應商和聯繫。它們都分別具有一對多的關係。

我正在使用sonata_type_collection將產品放入類別表單中,並使用相同的方式將供應商置於產品形式,並使用相同的方式將聯繫人放入供應商表單中。聯繫表單有一個用於郵編的sonata_type_model_list字段。

的問題

我對着下面的錯誤,當我點擊從類別>產品形式中的供應商窗體上添加新的聯繫人按鈕。

無法從 s58c147845272f_products_2_suppliers_0_contacts獲得元素ID故障部件:接觸

誤差不顯示當我保存的形式一步一步 - 像我一個產品添加到類別表格,然後保存表單,然後添加一個供應商到產品,然後保存表單,當我添加聯繫人 - 聯繫表單被加載,並且不會拋出上述異常。另外,當我直接進入供應商表單並在那裏添加聯繫人時,不會拋出異常。

只有當供應商未從類別表單中保存時,纔會引發上述異常。

任何幫助,高度讚賞。

+0

AFAIK奏鳴曲管理員不支持超過一個級別的嵌套collections.Show您的實體映射,所以我們可以進一步幫助您 – Mawcel

+0

我面臨同樣的問題。必須有解決辦法。 @Mawcel是否確定不支持多級嵌套集合? – user1875631

+0

顯然它現在支持,但我沒有意識到細節,因爲我目前沒有在基於奏鳴曲的項目上工作。看看這裏:https:// github。COM /奏鳴曲項目/ SonataAdminBundle /拉/ 3553 – Mawcel

回答

1

檢查您的任何屬性是否在名稱中有下劃線,如my_file。嘗試將其更改爲myFile,並相應地更改Admin類中的代碼: $formMapper->add('my_file', 'file'); =>$formMapper->add('myFile', 'file');

更新:

我想我知道它是什麼特別 - 你可能在你的孩子參考你的父母。如果是這樣的話,那麼在您的管理類添加了具有參考父母的實體:

$formMapper->add('[parent_reference_attribute]', 'sonata_type_model_hidden'); 

與你的領域引用父的名稱更換[parent_reference_attribute]

然後異常應該消失,至少它是在我的情況。