设置其 filedcollection DRUPAL 后无法保存节点

Can't save node after setting its filedcollection DRUPAL

有这样的结构: 节点 -> 已归档 "field_server_supported_hardware"(字段集合) -> 字段 "field_hardware_items"(节点参考宽度复选框列表)

我想在 "field_hardware_items" 中再添加一项(在 ckeckboxlist 中再检查一项)。

这是我的代码,它没有抛出错误,但我无法保存更改:

$node_wrap = entity_metadata_wrapper('node', $node_id); // our node wrapper

$node_wrap->field_server_supported_hardware[$key_item]->field_hardware_items->offsetSet($new_key, $new_node_item_to_attach);  // setting new item

___save_debug($node_wrap->field_server_supported_hardware[$key_item]->field_hardware_items->value()); // if I log "field_hardware_items", it includes new item, and includes it in correct structure.
$node_wrap->save(TRUE);  // trying to save node

然后我打开我在管理面板中保存的节点,但是没有选中 id=$new_node_item_to_attach 节点的复选框。

在保存之前尝试 $node_wrap->revision->set(TRUE) 显然 save() 函数没有考虑在更新时在节点上创建新修订的标志,所以这可能是您看不到更改的原因。