7

我想出的第一件事是调用computedInputs选项nexusPrisma。但这行不通,因为它们需要根据情况进行不同的处理,但在全球范围内:

1. create -> createdAt = now, updatedAt = null
2. update -> createdAt = keep as it is, updatedAt = now

为了使它工作,我需要像这样单独设置 computedInputs:

t.crud.createOneX({
  computedInputs: {
    createdAt: () => DateTime.utc().toString(),
    updatedAt: () => null,
  },
});

t.crud.updateOneX({
  computedInputs: {
    createdAt: () => undefined,
    updatedAt: () => DateTime.utc().toString(),
  },
});

虽然这可能有效,但我无法在嵌套模型上“计算”这些输入。为了防止传递 createdAt/updatedAt,我还必须t.crud在该资源上创建另一个,没有这些时间戳。

可能有效的最后一个解决方法是根本不使用t.crud,这是一个无赖。

4

1 回答 1

30

感谢您提出问题。

Prisma 可以为您处理模型中的createdAt和列。updatedAt@default(now())@updatedAt属性分别添加到您的createdAtupdatedAt列中。您可以像这样将列添加到模型中:

model Post {
  id               Int                @id @default(autoincrement())
  title            String
  content          String?
  published        Boolean?           @default(false)
  createdAt        DateTime           @default(now())
  updatedAt        DateTime           @updatedAt
}

您可以在我们的文档@default(now())中了解更多信息。@updatedAt

如果您遇到任何其他问题和疑问,我很乐意为您提供帮助

于 2020-12-28T16:35:17.780 回答