Drupal8以编程方式创建字段

Drupal8以编程方式创建字段,drupal,drupal-8,drupal-fields,drupal-field-api,Drupal,Drupal 8,Drupal Fields,Drupal Field Api,我为Drupal8创建了一个自定义模块,允许用户选择内容类型,以便以编程方式添加一些字段。 如何创建一些字段(本例中为文本类型)并使用自定义模块将其附加到内容类型 要帮忙吗 谢谢。签出Drupal 8 它实现了几个函数,可能就是您所需要的,下面是该钩子文档中的textfield示例 function hook_entity_bundle_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle, array

我为Drupal8创建了一个自定义模块,允许用户选择内容类型,以便以编程方式添加一些字段。 如何创建一些字段(本例中为文本类型)并使用自定义模块将其附加到内容类型

要帮忙吗

谢谢。

签出Drupal 8

它实现了几个函数,可能就是您所需要的,下面是该钩子文档中的textfield示例

function hook_entity_bundle_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle, array $base_field_definitions) {
  // Add a property only to nodes of the 'article' bundle.
  if ($entity_type->id() == 'node' && $bundle == 'article') {
    $fields = array();
    $fields['mymodule_text_more'] = BaseFieldDefinition::create('string')
      ->setLabel(t('More text'))
      ->setComputed(TRUE)
      ->setClass('\Drupal\mymodule\EntityComputedMoreText');
    return $fields;
  }
}

您可能还需要字段存储、签出

您需要创建FieldType、FieldWidget和FieldFormatter(如果需要),在Core/Field/Plugin/Field中有很好的示例

这里有一个很好的例子