【发布时间】:2020-05-24 18:01:14
【问题描述】:
我正在尝试查找与某个枚举匹配的结果,这是我的type:
type User {
id: ID! @id
fname:String!
lname:String!
email:String! @unique
password: String
school_ID: String #@relation(Link: INLINE)
role: [Role] @scalarList(strategy: RELATION)
resetToken: String
resetTokenExpiry: String
}
我可以搜索电子邮件,因为它有 @unique 键,但 Role 是一个枚举,我不能向它添加 @unique 键,这是有道理的,因为结果不会是独一无二的。
但我不断收到此消息:
“变量 \"$_v0_where\" 的值无效 {\"role\":\"TEACHER\"};字段 \"role\" 未由 UserWhereUniqueInput 类型定义。”
如果我想使用电子邮件查找项目,使用电子邮件可以得到我想要的结果。
我所追求的是返回一个数组,其中包含与所选枚举结果匹配的所有对象。
在我的架构中,我有这个:
users: [User]!
user(where: UserWhereInput!): User
findUser(role: Role, id: ID, email: String): User
在我的查询解析器中,我正在使用以下内容:
users: forwardTo('db'),
user: forwardTo('db'),
async findUser(parent, args, ctx, info) {
return ctx.db.query.user({
where: {email: args.email, id: args.id, role: args.role}
}, info)
},
我正在使用 prisma (1.17.1) 来生成我的架构
如何更改我的代码或findUser 函数以获得所需的结果?
【问题讨论】:
-
这个问题似乎特定于 Prisma,而不是 GraphQL 或 Apollo。您应该相应地更新您的标签并指出您正在运行的 Prisma 版本。
-
@DanielRearden 完成 :-) - 我仍然认为它与 GraphQL 有关,因为我正在整理我的架构
标签: enums graphql prisma graphiql