我是Drupal的新手并且使用Drupal 8,我没有在Drupal 7或6中工作,因此对它的了解较少。
我正在研究Drupal内容类型的一些动态字段。
我有一个附加词汇表的内容类型(选择术语列表)。我在那里使用改进的多选(https://www.drupal.org/project/improved_multi_select)。
现在我在模块中有一些代码可以从一些传入的API数据中动态创建词汇表。
我想,只要我的代码创建一个词汇表,它就会自动附加到我在内容类型一中使用的字段存储信息。
答案 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();