动态添加词汇
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
【讨论】:
对我有用,但我还在词汇表中添加了一个默认术语,以在改进的多选中显示它以上是关于动态添加词汇的主要内容,如果未能解决你的问题,请参考以下文章