如何在Drupal 8的同一节点的下拉菜单中获取多个字段集合值?

时间:2018-10-04 10:41:23

标签: drupal-modules drupal-8

我有一个内容类型,并且我用字段组(水平选项卡)分隔了字段。有2个字段集合。我想从一个字段集合中获取字段值,并将其设置为第二个字段集合中的选择列表。

1 个答案:

答案 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
            }
        }
    }
}

如果您遇到其他任何问题,请告诉我