Drupal 7删除节点的字段集合

时间:2014-03-26 09:29:22

标签: php drupal drupal-7

我刚发现一个脚本以编程方式将字段集合删除到特定节点:

<?php
  $node = node_load(1);
  $field_collection_item_value = $node->field_page_collection1[LANGUAGE_NONE][0]['value']; // Take field collection item value.
  entity_delete_multiple('field_collection_item', array($field_collection_item_value)); // Delete field collection item.
?>

不幸的是,当我看到它时,它只删除了第一个字段集合,我需要选择我要删除的字段集。

这是我的结构:

多个字段集合,具有:对另一个节点的引用和两个选择

我在网址中有引用nid所以我可以使用它,但我不知道如何选择正确的字段集合。

由于

1 个答案:

答案 0 :(得分:2)

尝试使用它:

$node = node_load(1);
$searhed_nid = '2';
$field_page_collection1 = field_get_items('node', $node, 'field_page_collection1');
foreach ($field_page_collection1 as $item) {
  $field_collection = entity_load_single('field_collection_item', $item['value']);
  $fc_item_wrapper = entity_metadata_wrapper('field_collection_item', $field_collection);
  // lets take name the field with ref field_ref_nid.
  $field_val = $fc_item_wrapper->field_ref_nid->raw();
  if ($field_val == $searhed_nid) {
    $field_collection->delete();
  }
}