如何在 sanity.io 中为文档创建默认的“creationDate”?

Posted

技术标签:

【中文标题】如何在 sanity.io 中为文档创建默认的“creationDate”?【英文标题】:How to create a default `creationDate` for a document in sanity.io? 【发布时间】:2018-07-26 17:41:25 【问题描述】:

我已经检查了documentation 如何做到这一点,但我还没有找到答案。

基本上,当创建/发布文档时,我想为文档设置一个createdDate(作为只读/隐藏字段)。

【问题讨论】:

【参考方案1】:

我找到了答案here。

文档的核心是一个 JSON 对象,它具有唯一的 _id、时间戳_createdAt_updatedAt)和修订标记 _rev。

所以创建日期是由理智自动生成的,包括许多其他有趣的属性。

【讨论】:

没错。 _createdAt 是创建文档时锁定的只读属性。您实际上可以在创建文档时提交 _createdAt 和 _updatedAt 值(通过 api,以支持导入数据重新创建其历史记录),但创建后,这些字段是只读的,并且完全由 Sanity 管理。【参考方案2】:

如svale's comment 中所述,可以同时设置_createdAt_updatedAt,但只能在创建时设置。我一直在使用Sanity's official JS client,它允许我这样做:

await client.create(
    _type: "someType",
    _createdAt: "2019-12-31T12:34:56Z",
    _updatedAt: "2020-01-01T12:34:56Z",
);

此外,如果需要,可以设置自定义_id

更新文档时,这些属性确实是只读的,不能手动更改。

【讨论】:

以上是关于如何在 sanity.io 中为文档创建默认的“creationDate”?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 gatsby-source-sanity 在 sanity.io 和 gatsby 中使用内部链接?

在 sanity.io 中自定义模式字段

如何将 CSV 导入 sanity.io

如何在 Sanity.io 的 inputComponent 中检索引用的字段数据?

如何将多张图片上传到 sanity.io?

Sanity.io 便携式文本富文本编辑器中的文本/图像对齐