集合和字段

本页内容

集合定义了一种内容类型以及编辑者用于创建它的表单。其字段定义每个条目可以包含的值。例如,产品集合可以包含标题、价格、描述、产品图片以及对品牌条目的引用。

管理员在内容类型下管理集合。当从配置设置站点或环境时,种子文件可以定义相同的集合设置。

集合标识

每个集合都有一个复数标签、一个可选的单数标签和一个 slug。标签显示在管理面板中。slug 在查询、API 路由、种子文件和数据库中标识集合。

例如,标记为博客文章的集合可以使用博客文章作为其单数标签,使用 posts 作为其 slug。然后 Astro 代码通过该 slug 查询它:

import { getEmDashCollection } from "emdash";

const { entries: posts } = await getEmDashCollection("posts");

在创建集合之前选择 slug。管理面板稍后不会重命名集合 slug 或字段 slug,因为现有查询和存储的列依赖于它们。slug 以小写字母开头,仅包含小写字母、数字和下划线,最多 63 个字符。EmDash 还会拒绝其自己的路由和条目数据使用的保留名称。

集合行为

集合设置控制编辑者和公开页面如何使用条目:

  • Routable 要求在条目可以发布之前有一个公开 slug。URL 模式可以将条目 slug 或 ID 与其发布日期组合以生成公开路径。
  • Drafts 允许编辑者在发布之前保存工作。
  • Revisions 保留内容历史记录的快照。
  • Preview 为未发布的内容提供签名的预览 URL。
  • Search 为标记为可搜索的字段启用全文搜索。
  • SEO 添加标题、描述和图片元数据字段,并将集合包含在站点地图中。
  • Edit locking 在一个编辑者工作时保持条目锁定,并拒绝其他作者直到锁定释放。
  • Comments 可以按集合启用,具有审核和自动关闭设置。
  • Group 将集合放置在可折叠的侧边栏文件夹中。具有相同组的集合共享一个文件夹,定位在其中第一个出现的位置。当分配给它的每个集合都显示在该文件夹中时,分类法加入该文件夹。

启用站点实际使用的行为。例如,打开预览会提供预览 URL,但 Astro 页面仍必须正确渲染条目及其预览状态。有关完整流程,请参阅预览模式。

字段类型

为编辑者输入的值以及应用程序代码接收它的方式选择字段类型。EmDash 支持 17 种字段类型:

内容需求字段类型编辑者使用的内容
短文本或长文本string, text, slug, url文本输入、文本区域和 URL 值
数字number, integer十进制或整数输入
状态和时间boolean, datetime开关或日期时间选择器
固定选项select, multiSelect从配置的选项中选择一个或多个
富文本或结构化数据portableText, json, repeater, blocks富文本、JSON、重复组或有序块组合
媒体image, file从媒体库中选择的项目
关系reference从另一个集合中选择的条目

类型不仅仅是编辑器控件。它还决定 EmDash 如何存储和验证值,以及生成的 TypeScript 声明如何描述它。字段类型参考列出了每种类型的值形状和选项。

字段规则

每个自定义字段都有一个标签和一个 slug。以下选项进一步描述其行为:

  • Required 防止在没有值的情况下保存条目。
  • Unique 防止集合中的两个条目使用相同的值。
  • Default value 在适当时提供起始值。
  • Validation 可以根据字段类型限制文本长度、数字范围、模式、选择、文件类型或重复器长度。
  • Searchable 将支持的文本字段包含在集合的全文搜索索引中。
  • Indexed 为在支持的字段上排序或过滤创建数据库索引。
  • Translatable 控制每个语言环境是否有自己的值。不可翻译的值在同一条目的翻译之间共享。

当查询按该自定义字段排序或过滤时,打开 Indexed。索引帮助数据库查找匹配或有序的条目,但它使用额外的存储空间,并在创建或更新内容时增加工作。不要仅仅因为页面显示它就索引字段。

索引可用于 string、url、number、integer、boolean、datetime、select、reference 和 slug 字段。富文本、JSON、重复器和多选值包含更复杂的数据,无法使用这种类型的索引。

引用字段不在集合自己的表中存储任何内容。使用目标集合配置它,仅当字段应链接多个条目时才允许多个值。EmDash 单独保留链接,并在 references 下而不是在 data 中返回链接的条目,因此引用允许代码加载或识别相关内容,而无需将目标条目复制到源条目中。有关存储形状和没有目标集合的字段行为,请参阅 reference,有关相关工作流程,请参阅关系。

稍后更改字段

标签、验证、搜索设置、索引、小部件选项和显示顺序可以在不替换字段的情况下更改。添加字段会保留每个现有条目,尽管如果站点期望一个值,那些条目需要新字段的值。

迁移必须转换现有值、更新模型,并在部署期间保持旧应用程序代码和新应用程序代码兼容。在进行这些更改之一之前,请遵循演化已部署站点的架构。

相关任务

使用处理内容创建和发布条目。使用查询内容过滤和排序它们。阅读内容模型了解生成的类型和种子文件。