2013-08-26 181 views
3

我想將字段集合項目添加到我的自定義表單。我的表單是自定義事件註冊(將數據保存到事件註冊節點),並且該字段集合在事件註冊內容類型中可用。 我嘗試了很多代碼並嘗試,但沒有一個可以工作。將Drupal字段集合元素添加到自定義表單

module_load_include('inc', 'field_collection', 'field_collection.pages'); 
$field_collection_item = entity_create('field_collection_item', array('field_name' => 'field_participant')); 
$entity_form = field_collection_item_form($form, $form_state, $field_collection_item); 
$form['participant'] = $entity_form; 

這會將野外採集項目到我的形式,但我不能添加一個字段集合項和(公司,電話等)被複制的形式等元素。 我發現另一條線,也許應該加上:

$field_collection_item->setHostEntity('node', $node); 

,但在那一刻我沒有$節點和我不知道它必須是。

回答

1

我看到您遇到的問題。您正在構建字段集合表單,然後嘗試構建其他字段集合表單,但內容未附加。

我認爲不是,您要使用以下

module_load_include('inc', 'field_collection', 'field_collection.pages'); 
$field_collection_item = entity_create('field_collection_item', array('field_name' => 'field_collection_name')); 
field_attach_form('field_collection_item', $field_collection_item, $form['participant'], $form_state); 

,讓您在field_attach_form改變位置附着大量的現場採集項目

module_load_include('inc', 'field_collection', 'field_collection.pages'); 
for ($i=0;$i<5;$i++) { 
    $field_collection_item = entity_create('field_collection_item', array('field_name' => 'field_collection_name')); 
    $form['category'][$i] = array(); 
    field_attach_form('field_collection_item', $field_collection_item, $form['category'][$i], $form_state); 
} 

確保設置#原始$表單上的#parent屬性,否則您的數據將在提交時連接在一起

相關問題