我可以使用指令根据其他字段值计算字段值吗?

Posted

技术标签:

【中文标题】我可以使用指令根据其他字段值计算字段值吗?【英文标题】:Can I use a directive to calculate field value based on other field value? 【发布时间】:2019-03-15 16:12:21 【问题描述】:

我有这样一个模型:

type Email 
  id: ID! @unique
  confirmed: Boolean! @default(value: "false")
  formatted: String! @unique
  raw: String!

我需要将raw字段中的值小写并放入formatted字段中,然后再保存到db。

问题是我已经有了三个用例(联系我们、订阅新闻、注册),我需要在三个不同的解析器中编写相同的代码。

为了避免重复,我认为以某种方式在指令中执行此操作会很好。

是否可以创建我自己的指令来处理这个问题?

更新:从 Prisma v1.18 开始,这是不可能的。

【问题讨论】:

【参考方案1】:

这目前在 Prisma 中是不可能的,确实需要在应用层实现。不过有一个开放的feature request,如果您对此功能感兴趣,请加入 GitHub 上的讨论并添加您的 +1。

【讨论】:

【参考方案2】:

根据规范文档,我认为这是不可能的(不幸的是)因为这听起来像你需要一个计算域

“GraphQL 不是一种能够进行任意计算的编程语言,而是一种用于查询具有本规范中定义的功能的应用服务器的语言。”

https://facebook.github.io/graphql/June2018/

【讨论】:

以上是关于我可以使用指令根据其他字段值计算字段值吗?的主要内容,如果未能解决你的问题,请参考以下文章

将 OpenFOAM 场定义为空间函数

可以对主键使用字符值吗?

可以在 django 模型验证器中使用多个值吗?

我可以通过 Laravel 5.1 中的自定义请求对象验证后恢复输入字段值吗?

根据另一个字段的最大值获取字段的第一个值,同时还使用其他最大值字段

我应该总是/永远/从不将对象字段初始化为默认值吗?