我必须从 myModule 中的自定义代码更新一些节点引用字段。这必须在插入特定类型的新节点时完成,因此我实现了 hook_node_insert 如下:
function myModule_node_insert($node){
$settings = _settings_forms_nodereference_fields($node->type);
$field = $settings['field'];
$language = field_language('node', $node, 'body');
$node->{$field}[$language][0]['nid'] = 408;
$node->{$field}[$language][1]['nid'] = 408;
$node->{$field}[$language][2]['nid'] = 408;
node_save($node);
}
但是,每次尝试创建新节点时,都会出现以下错误;
PDOException:SQLSTATE [23000]:违反完整性约束:1062 键“PRIMARY”的重复条目“436”:INSERT INTO {node}(nid、vid、type、language、title、uid、status、created、changed、comment、promote ,粘性,tnid,翻译)值....
我发现这是因为 node_save 功能,但没有它我的更改不会提交。
完整的数组如下:
[field_event_form_s_] => Array
(
[und] => Array
(
[0] => Array
(
[nid] => 261
)
[1] => Array
(
[nid] => 262
)
[2] => Array
(
[nid] => 263
)
)
)