我有一个内容类型,并且我用字段组(水平选项卡)分隔了字段。有2个字段集合。我想从一个字段集合中获取字段值,并将其设置为第二个字段集合中的选择列表。
答案 0 :(得分:0)
您可以使用下面的代码执行相同的操作:这只是一个示例,请小心使用内容类型和字段集合的机器名称。
$nid = 1234; //Dummy Value
//loading node based on nid
$node = \Drupal\node\Entity\Node::load($nid);
//Here I used field_collection_first_field as machine name of the field collection name on your content type
if(!($node->get('field_collection_first_field')->isEmpty())){
//Field collection 1
$fcID1 = $node->get('field_collection_first_field')->getValue()[0]['value'];
if(!empty($fcID1)){
$fc1 = \Drupal\field_collection\Entity\FieldCollectionItem::load($fcID);
$fcFieldValue = $fc1->get('field_comments')->getValue()[0]['value'];
}
}
if(isset($fcFieldValue)){
if(!($node->get('field_collection_second_field')->isEmpty())){
//Field collection 2
$fcID1 = $node->get('field_collection_second_field')->getValue()[0]['value'];
if(!empty($fcID1)){
$fc2 = \Drupal\field_collection\Entity\FieldCollectionItem::load($fcID);
$fc->set('field_comments',$fcFieldValue);
if(!($fc->save())){
echo 'success'; //Work Done
}
}
}
}
如果您遇到其他任何问题,请告诉我