gpt4 book ai didi

javascript - 显式多对多关系 prisma

转载 作者:行者123 更新时间:2023-12-05 01:59:22 24 4
gpt4 key购买 nike

我有这 3 个 prisma 模型,

model user {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @default(now())
courses userOnCourse[]
}

model course {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @default(now())
users userOnCourse[]
title String
description String
}

model userOnCourse {
createdAt DateTime @default(now())
user user @relation(fields: [userId], references: [id])
userId String
course Course @relation(fields: [courseId], references: [id])
courseId String

@@id([userId, courseId])
}

这是一个多对多关系,其中一个用户可以拥有多个类(class),一个类(class)可以有多个用户,为了引用显式的 m-m 关系,我创建了另一个模型名称 userOnCourse

我正在努力将 courseId 的引用传递到 userOnCourse 模型中,我想将类(class)与 userid 一起连接到该模型中,但由于它是在运行时创建的,因此似乎无法在编译时传递 courseId。

这里是代码,假设我们在创建类(class)时已经有了用户数据,如何传递在运行时创建的courseId,并建立连接。

我正在关注这个 reference来自棱镜文档。

const createCourse = await prisma.course.create({
data: {
title: courseData.title,
description: courseData.description,
users: {
connect: {
userId_courseId: {
userId: user.id,
courseId: ?? // That is where the problem is, how can i add the coursesId?
},
},
},
},
});

最佳答案

您需要的是create 而不是connect。您需要在映射 UserCourse 的多对多表中创建一个新条目。因此,您需要创建该条目。

代码为:

await prisma.course.create({
data: {
description: 'des',
title: 'title',
users: { create: { userId: user.id } },
},
})

关于javascript - 显式多对多关系 prisma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67894860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com