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

Php 设置其filedcollection DRUPAL后无法保存节点,php,drupal,drupal-7,entity,Php,Drupal,Drupal 7,Entity,有这样的结构: 节点 ->字段\u服务器\u支持的\u硬件字段集合 ->字段\u硬件\u项目节点参考宽度复选框列表 我想在字段\u hardware\u items中再添加一个项目检查CKCKBOXList中的另一个项目 这是我的代码,它不会抛出错误,但我无法保存更改: $node_wrap = entity_metadata_wrapper('node', $node_id); // our node wrapper $node_wrap->field_server_supported

有这样的结构: 节点 ->字段\u服务器\u支持的\u硬件字段集合 ->字段\u硬件\u项目节点参考宽度复选框列表

我想在字段\u hardware\u items中再添加一个项目检查CKCKBOXList中的另一个项目

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

$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\u node\u item\u to\u attach的节点的复选框未选中。

在保存之前尝试$node\u wrap->revision->setTRUE 显然,save函数没有考虑在更新时在节点上创建新修订的标志,因此这可能是您没有看到更改的原因