我正在尝试学习一起使用 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
}
我需要编写一个 Nexus 突变,它可以接受带有标题、正文和图像 url 数组的帖子。我需要为每个网址创建一个图像记录,并将它们附加到帖子中。
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()
or的东西intArg()
,但是你如何接受一个数组? - 创建一堆
Image
对象并将它们附加到的正确方法是Post
什么?我应该有一个 for 循环并手动创建它们,然后以某种方式附加它们吗?或者,还有更好的方法?
你知道有没有人做这种事情的例子?