动态添加词汇

时间:2017-12-03 18:54:31

标签: drupal module drupal-8 vocabulary

我是Drupal的新手并且使用Drupal 8,我没有在Drupal 7或6中工作,因此对它的了解较少。

我正在研究Drupal内容类型的一些动态字段。

我有一个附加词汇表的内容类型(选择术语列表)。我在那里使用改进的多选(https://www.drupal.org/project/improved_multi_select)。

现在我在模块中有一些代码可以从一些传入的API数据中动态创建词汇表。

我想,只要我的代码创建一个词汇表,它就会自动附加到我在内容类型一中使用的字段存储信息。

1 个答案:

答案 0 :(得分:1)

您需要将目标捆绑包添加到存储设置中,以下代码可以帮助您。

/**
   * Attach vocabulary to field
   * @var $field_storage
   */
  $field_storage = \Drupal::entityManager()->getStorage('field_config')->loadByProperties(['field_name' => 'field_machine_key']);
  $field_storage = $field_storage['node.content_type_machine_key.field_machine_key'];
  $settings = $field_storage->getSetting('handler_settings');
  // $vocab_id will be your newly created vocabulary
  $settings['target_bundles'][$vocab_id] = $vocab_id;
  $field_storage->setSetting('handler_settings',$settings);
  $field_storage->save(); 

See Complete Code Here