在实际的项目中,我们遇到这样的问题,讲座与讲座视频,我们处理成为了两个内容类型,讲座代码是唯一的,为了导入的方便,我们先导入了讲座,再导入了讲座视频,然后写了一段代码,根据讲座代码,来同步两个内容类型的关联。
这是我编写的PHP代码,用在VBO中:
$query = new EntityFieldQuery(); $query->entityCondition('entity_type', 'node'); $query->entityCondition('bundle', 'lecture'); $col = 'value'; //hardcoded at here. $query->fieldCondition('field_booking_code', $col, $entity->field_precode['und'][0]['value']); $result = $query->execute(); $count = $query ->count() ->execute(); if ($count) { $nids = array_keys($result['node']); $nid = reset($nids); $entity->field_lecture['und'][0]['target_id'] = $nid; node_save($entity); }
先用单个节点测试了一下,可以,然后批处理所有的节点。