动态添加词汇

Posted

技术标签:

【中文标题】动态添加词汇【英文标题】:Adding vocabulary dynamically 【发布时间】:2018-05-17 05:57:49 【问题描述】:

我是 Drupal 的新手并使用 Drupal 8,我没有使用过 Drupal 7 或 6,所以对它的了解较少。

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

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

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

我希望,每当我的代码创建一个词汇表时,它都会自动附加到我在内容类型 1 中使用的字段存储信息。

【问题讨论】:

【参考方案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

【讨论】:

对我有用,但我还在词汇表中添加了一个默认术语,以在改进的多选中显示它

以上是关于动态添加词汇的主要内容,如果未能解决你的问题,请参考以下文章

react 对象动态添加属性 setState

vue如何动态添加多个li

C# 动态添加类动态添加类型代码添加类型

jquery 动态添加tab 效果

如何在水晶报表中动态添加字段

AARDIO 动态添加控件