logo

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

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

演示 EBT 模块 下载 EBT 模块

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

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

演示 EPT 模块 滚动

滚动

1.7 字段(Field)与实体(Entity):在 Drupal 中处理字段与实体

18/10/2025, by Ivan

在 Drupal 中,有两个非常重要的模块:FieldsField UI。它们允许我们为各种对象(节点、评论、用户、分类术语等)附加不同类型的字段。这些对象由 Entity(实体) 模块创建。通过 Entity + Fields 的组合,我们可以在网站上实现各种现实世界对象之间的关系。

例如:你有一家公司,公司下有多个部门,每个部门又有若干员工。我们可以为“部门”创建一个 分类词汇表(Taxonomy Vocabulary),并在其中添加公司所有部门,然后创建一个 内容类型(Content Type)Employee(员工),并为其添加与部门关联的字段。

最终,我们不仅能获得部门和员工的独立页面,还能得到一个彼此关联的目录结构。在本课中,我们将创建这样的“部门与员工”目录,但首先要理解:Drupal 让你能够快速为网站添加各种对象,并灵活地建立它们之间的链接。

开始前,请确保以下模块已启用:EntityFieldField UITaxonomy

让我们创建一个分类词汇表(Vocabulary)—— Department(部门)。(我们之前的课程中已创建过词汇表,参见 此课程

taxonomy departments

接下来,创建内容类型 Employee(员工)(我们之前已介绍如何创建内容类型)。可以将标题字段重命名为 Full name(全名)

Content type employee

然后点击 Manage Fields(管理字段)

content type drupal

管理字段(Manage fields)

在此标签页中,我们可以为内容类型(以及其他实体:评论、用户等)添加字段。现在,添加一个指向“Department”分类词汇表的字段:

employee

每位员工还有一个职位,因此我们添加一个 Position(职位) 字段。字段类型选择 Text(文本),这是一个普通文本字段。

Position field

我们还可以添加一个 Birthday(生日) 字段(请确保 Datetime 模块已启用):

Position field

日期类型建议选择 Date only(仅日期)

date only

接着,将 Body(正文) 字段重命名为 About Me(关于我)

About myself

修改标签后:

About myself

现在,我们已经为每个员工添加了一些字段(在下一节中,我们将添加一个 Photo(照片) 字段来上传员工照片)。此时,在“添加员工”页面中,就会出现这些附加字段。

additional fields

如果你希望调整编辑表单中字段的显示顺序,请转到 Manage form display(管理表单显示) 选项卡。

管理表单显示(Manage form display)

manage form display

在该标签页中,我们可以配置节点编辑表单中字段的排列顺序。而在 Manage display(管理显示) 中,我们配置的是内容页面上字段的显示顺序。

管理显示(Manage display)

在摘要(Teaser)视图中,我们可以隐藏 Department 字段的输出,因为该字段在部门页面的摘要中已经是固定的。但在完整节点视图中,应显示部门字段,以便用户能从员工页面跳转回部门页面。

Department field

另外,我们可以为生日字段设置日期格式,使其仅显示日期而不显示时间。点击齿轮图标并选择合适的日期格式:

date

别忘了在每次修改后点击“保存(Save)”。同样地,请记得调整 Default 显示模式(如果未单独定义 Full content 模式,则 Default 将作为默认节点显示方式)。

employee

现在我们可以添加员工了:

list of employees

如果进入“Department(部门)”词汇表的编辑页面,还可以看到用于编辑分类术语字段的选项卡:

taxonomy of the field

因此,我们可以为每个部门添加字段(例如“员工数量”或“部门徽标”等)。

同样的操作也适用于网站用户。打开账户设置页面:

/admin/config/people/accounts

field account

现在你已经了解:在 Drupal 中几乎可以为所有内容添加字段。你可以自行决定是使用 Taxonomy(分类)Users(用户) 还是 Nodes(节点) 来构建结构。

例如,与其使用分类词汇表来表示部门,不如直接创建一个 Department 内容类型,并通过 Entity Reference(实体引用) 模块来建立与员工的关系。这种方式同样可以让不同内容之间相互关联。

Drupal 的字段系统结合 Views 模块 提供了极其强大的功能,让你能灵活构建各种类型的网站。即使现在你还没完全理解,也可以继续学习下一课,随着实践你会逐渐掌握这些概念。