javascript - 显式多对多关系棱镜
问题描述
我有这 3 个棱镜模型,
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])
}
这是一个多对多关系,一个用户可以有很多课程,一个课程可以有很多用户,为了引用明确的 mm 关系,我创建了另一个模型名称userOnCourse。
我正在努力将 courseId 的引用传递到 userOnCourse 模型中,我想将课程与 userid 一起连接到该模型中,但是由于它是在运行时创建的,因此似乎无法在编译时传递 courseId。
这是代码,假设我们在创建课程时已经有了用户数据,如何传递已经在运行时创建的 courseId 并建立连接。
我正在关注 prisma 文档中的这个参考。
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
。您需要在映射 aUser
与Course
. 所以你需要create
那个条目。
代码将是:
await prisma.course.create({
data: {
description: 'des',
title: 'title',
users: { create: { userId: user.id } },
},
})
推荐阅读
- python-3.x - 颜色 = Color.query.all()
- reactjs - Reactjs 挂钩中的 Starter 需要从 column.js 组件中调用单击事件 openModal() ,其中事件在 Table.js 中定义
- c++ - 阻止铿锵格式断线
- python - Statsmodels 功效分析 观察次数
- python - 如何使用 KNeighbors 预测在 Google Vision OCR 中选择正确的文本位置?
- django - 仅在管理页面中获取以下内容
- macos - MacOS Safari 中的响应式 SVG 行为
- python - If else 语句不支持 *: 'NoneType' 和 'float' 的操作数类型
- sql - 从同一个表中的父行获取所有子代
- angular - 错误 RangeError:使用带有 Angular 11 的 webComponent 超出了最大调用堆栈大小