创建或编辑contentType A的节点时,需要编辑contentType B中的字段。
我知道这是可以使用规则的,但我需要更多的控制,所以我想在我自己的模块中这样做。
尝试了这段代码但没有成功:
function MYMODULE_node_presave($node) {
MYMODULE_change_value($node);
}
function MYMODULE_change_value($node) {
$node = node_load($node->nid);
$referenced_nid = $node->referenced_node[LANGUAGE_NOE][0]['target_id']
$referenced_node = node_load(referenced_nid);
$referenced_node->my_field[LANGUAGE_NONE][0]['value'] = 12345.0;
node_save($referenced_node);
}我选错钩了吗?
发布于 2018-10-14 20:50:20
尝试以下几点:
/**
* Implements hook_node_presave().
*/
function yourModule_node_presave($node) {
if ($node->type == 'your_typeA') {
yourModule_change_value($node);
}
}
function yourModule_change_value($node) {
if (isset($node->field_node_referenced[LANGUAGE_NONE][0]['target_id'])) {
//- Get referenced node id
$referenced_node_id = $node->field_node_referenced[LANGUAGE_NONE][0]['target_id'];
//- Load referenced node
$wrapper = entity_metadata_wrapper('node', $referenced_node_id);
$wrapper->field_name->set(array(
'value' => 'test new field value'
));
$wrapper->save();
}
}https://drupal.stackexchange.com/questions/270920
复制相似问题