logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

9.10.4. Drupal 8 字段 API:Drupal 格式化器(Formatter)——在页面上显示数据

16/10/2025, by Ivan

Menu

在本文中,我们将学习 字段格式化器(Field Formatters),它允许我们控制字段在页面上的显示方式。

在前面的文章中,我们创建了一个字段类型 Link。本文将讲解这些字段如何在页面上显示,以及哪个类负责这一过程。每个通过 Drupal 添加的字段都可以在页面上显示,并且可以在“显示管理(Manage display)”页面中编辑其显示设置。

Manage display page

Format(格式) 列中,你可以选择字段的显示方式。该列的内容来源于 字段格式化器类(Field Formatter classes)。我们来看一个来自核心模块 Link 的格式化器类,它用于在页面上显示链接:

core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php

在类的注解(annotation)中,可以看到此格式化器所属的字段类型:

/**
 * Plugin implementation of the 'link' formatter.
 *
 * @FieldFormatter(
 *   id = "link",
 *   label = @Translation("Link"),
 *   field_types = {
 *     "link"
 *   }
 * )
 */

在这个文件中,我们最感兴趣的是 viewElements() 方法,它负责将数据输出到页面上。请注意,格式化器不会直接查询数据库,而是从变量 $items 中获取数据。