使用 UI 导出自定义字段代码
有时,当你从自定义模块中提取内容类型时,你还可以为该内容类型添加相关的字段。自动创建字段的功能允许你在多个站点上删除并重新安装时,不会留下多余的字段,并确保你不会忘记添加它们。我们将介绍两种将这些字段添加到代码库的方法。
前提条件
- 已安装 Drupal 8.0.x。
- 有一个自定义模块(在此示例中使用的模块名称为 foobar)。
- 在模块中有一个自定义内容类型(请按照父页面中的说明进行操作。内容类型的名称为“汽车品牌”)。
向我们的内容类型添加额外字段
有两种方法可以完成此步骤。你可以使用用户界面来创建字段并将配置导出到文件,或者你也可以自己编写文件。我喜欢使用第一种方法,只是为了确保不会遗漏 Drupal 添加字段到内容类型所需的任何内容,不过字段会以“field_”开头导出,而不是“foobar_car_brand_”,用来将它们与我们的自定义内容类型关联。在本页中,我们将介绍使用用户界面来创建字段并导出代码的方法,然后在自定义模块中使用这些代码。
使用 UI 创建字段
如前所述,此方法更适合不太熟悉 Drupal 添加字段到内容类型所需要求的用户。
启用自定义内容类型
如果你在 父页面的最后还没有启用 foobar 模块,请现在启用它。如果此时进入“创建内容”页面,你将看到可以创建一个新的“Car Brand”内容类型节点。
/admin/structure/types/manage/car_brand/fields
现在模块已启用,你可以进入内容类型的字段管理部分。添加你想要的所有字段。只需确保你添加的字段之一是“品牌信息”(field_brand_information),字段类型为“文本”(格式化、长文本、带摘要),并删除“正文”字段。其他保持默认即可。
使用 UI 导出字段配置 /admin/config/development/configuration/single/export
添加字段后,进入配置同步页面。顶部有三个选项卡。从这三个中选择“导出”。然后选择“单个项目”。
获取导出的配置
下面附上四张图片,展示了为“field_brand_information”字段需要导出的元素。
- 字段存储(Field Storage)
- 字段(Field)
- 实体视图显示(Entity View Display)
- 实体表单显示(Entity Form Display)
在配置代码块下方,你会看到应该在自定义模块中创建的文件名。将配置代码中的所有内容复制到指定的文件中,但排除第一行以“uuid:”开头的内容。
注意:如果你添加了其他字段,就需要为每个字段导出字段和字段存储。同样,如果你创建了多个显示模式,例如摘要(teaser),也需要导出。在此示例中,我们仅展示默认显示模式。
modules/custom/foobar/config/install/field.storage.node.field_brand_information.yml

modules/custom/foobar/config/install/field.field.node.car_brand.field_brand_information.yml

modules/custom/foobar/config/install/core.entity_view_display.node.car_brand.default.yml

modules/custom/foobar/config/install/core.entity_form_display.node.car_brand.default.yml

删除并重新启用 foobar 模块
现在你已将所有字段配置添加到代码库中,是时候删除 foobar 模块了。删除模块后,再次启用它,查看是否导入了自定义字段。如果此时进入“创建内容”页面,你将看到可以创建一个新的“Car Brand”内容类型节点,并且它包含了名为“品牌信息”的新字段以及你创建的其他字段。