簡體   English   中英

Symfony2表單 - 如何使用隱藏字段引用父對象

[英]Symfony2 form - How to have hidden field reference parent object

我是Symfony表單的新手,我正在試圖找出一個帶有引用父對象的隱藏字段的表單。 例如,我有一個與聯系人有多對一關系的列表。 創建新聯系人時,需要一個隱藏字段,其中包含要添加聯系人的列表的ID。

目前我正在嘗試在我的ContactType表單中嵌入一個名為ListIdType表單。 ListIdType表單中唯一的字段是列表的id。 這很好用,因為我可以在空的聯系人實體上設置列表,它會自動填充名為contact[list][id] (在ListIdType表單中定義)的表單中的ListIdType 這個問題是,當我提交表單時,我得到一個錯誤,說列表類中不存在元素“id”或methed“setId()”。

我的感覺是我做錯了什么,但我找不到任何文件指出我正確的方向。

我想出的解決方案是添加一個隱藏字段,並將property_path選項設置為FALSE 這是ContactType::buildForm的代碼:

  $builder->add('list_id', 'hidden', array(
        'data' => $data->getList()->getId(),
        'property_path' => FALSE,
    ));

然后我在我的控制器中處理該字段。

這有效,但不是我最好的解決方案。 如果有人可以提出更好的方法,我仍然是開放的!

最近我發現了Gregwar的論壇包,它增加了entity_id表單類型。 它可以自動完成大部分所需的轉換,可能正是您所需要的。

https://github.com/Gregwar/FormBundle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM