我想在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;
}
}
答案 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 中,如果您希望将字段添加到任何其他内容类型。