Module Hook在drupal 8内容类型中添加额外字段

时间:2016-05-06 08:10:47

标签: module hook drupal-8

我想在Drupal 8内容类型中添加一个带有自定义模块的额外字段,但我没有得到任何钩子。

以下是我正在使用的钩子,但这并没有帮助我得到我想要的结果:

function nodeclass_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;
  }
}

1 个答案:

答案 0 :(得分:0)

在模块文件夹中,创建以下文件夹 模块/ my_module /配置/安装/

然后在模块文件夹中创建以下文件。

my_module /配置/安装/ field.field.node.article.field_text_more.yml

langcode: en
status: true
dependencies:
  config:
    - field.storage.node.field_text_more
    - node.type.article
id: node.article.field_text_more
field_name: field_text_more
entity_type: node
bundle: article
label: 'More text'
description: ''
required: false
translatable: false
default_value: {  }
default_value_callback: ''
settings: {  }
field_type: string

my_module /配置/安装/ field.storage.node.field_text_more.yml

langcode: en
status: true
dependencies:
  module:
    - node
id: node.field_text_more
field_name: field_text_more
entity_type: node
type: string
settings:
  max_length: 255
  is_ascii: false
  case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: {  }
persist_with_no_fields: false
custom_storage: false

然后重新安装您的模块,它将添加新字段"更多文字"进入"文章"内容类型。

注意:更改文件名并更新行"捆绑:文章"在 field.field.node.article.field_text_more.yml 中,如果您希望将字段添加到任何其他内容类型。