如何在 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 中使用内部链接?