我正在使用 Prisma 2,但在连接模型上的现有记录时遇到问题,该模型与连接的模型具有隐式多对多关系。
model Event {
id Int @id @default(autoincrement())
performers Performer[]
}
model Performer {
id Int @id @default(autoincrement())
events Event[]
}
运行 Prisma 迁移后,我可以在 postgres 中看到我确实创建了一个名为 _EventToPerformer
的连接表。我在我的数据库中创建了一些表演者,当我尝试创建一个活动并连接这些现有表演者时,我无法做到。
const performers = await prisma.performer.findMany()
const event = await prisma.event.create({
data: {
performers: performers.map((p) => ({ id: p.id })),
},
include: {
performers: true,
},
});
对于上面的代码,我在传递给 create 函数的对象的 data
属性上遇到了相当神秘的打字稿错误。当我使用 @ts-ignore
进行抑制时,我收到了这些 Prisma 客户端错误:
Unknown arg `performers` in data.performers for type EventUncheckedCreateInput. Available args:
type EventUncheckedCreateInput {
id?: Int
}
在设置隐式多对多关系和/或将现有记录附加到这些模型时,是否有任何明显的遗漏?
答案 0 :(得分:1)
您缺少一个 this.cities.splice(0, 1);
this.cities = [...this.cities];
。所以你的代码应该是这样的:
this.cities = this.cities.slice(1);
您可以阅读有关处理关系的更多信息 here