问题描述
我正在努力学习如何同时使用 prisma 和 Nexus。我希望更有经验的人可以帮助我。
我的 prisma 模型如下所示:
model Post {
id String @id @default(cuid())
title String
body String
images Image[] @relation("ImagePost")
}
model Image {
id String @id @default(cuid())
post Post @relation("ImagePost",fields: [postId],references: [id])
postId String
name String
url String
}
我需要编写一个可以接受带有标题、正文和图像 url 数组的帖子的 Nexus 突变。我需要为每个 url 创建一个 Image 记录,并将它们附加到帖子中。
const Mutation = objectType({
name: 'Mutation',deFinition(t) {
t.field('createPost',{
type: 'Post',args: {
title: nonNull(stringArg()),body: stringArg(),images: ????
},resolve: (_,args,context: Context) => {
return context.prisma.post.create({
data: {
title: args.title,body: args.body,images: ????
},})
},})
})
你能帮我弄清楚如何正确地做到这一点吗?
- 我不知道如何将一组 json 对象传递给 args。有
stringArg()
或intArg()
之类的东西,但您如何接受数组? - 创建一堆
Image
对象并将它们附加到Post
的正确方法是什么?我应该有一个 for 循环并一个一个地手动创建它们,然后以某种方式附加它们吗?或者有更好的方法吗?
你知道有没有人做这种事情的例子?
解决方法
就像 nonNull
一样,还有一个 list
类型。您可以使用它并在其中创建一个 arg
。
至于创建图像,您可以使用 create
并将图像数组传递给 post
,如图 here。