设置其 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() 函数没有考虑在更新时在节点上创建新修订的标志,所以这可能是您看不到更改的原因。
有这样的结构: 节点 -> 已归档 "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() 函数没有考虑在更新时在节点上创建新修订的标志,所以这可能是您看不到更改的原因。