【发布时间】:2021-07-23 06:20:24
【问题描述】:
我有 2 张桌子。 Member & Event 的想法是每个成员可以参加 0 个或多个活动。每个事件可以有 0 个或多个成员。
事件已经存在,代码应该只是根据他们的 ID 将事件添加到成员。
架构模型:
model Member {
id String @id @default(uuid())
firstName String
lastName String
emailAddress String
mobileNumber String
whatsAppNumber String @default("null")
password String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
events Event[]
}
model Event {
id String @id @default(uuid())
name String
date DateTime
meetingPoint String
meetingTime String
details String
members Member[]
}
问题是,我无法弄清楚如何向现有成员添加活动。在线资源也不行。
查询代码:
exports.registerForEvent = async (req, res, next) => {
try {
const { memberId, eventId } = req.body;
const _event = await prisma.event.findUnique({ where: { id: eventId } });
if (_event) {
const _member = await prisma.member.upsert({
where: { id: memberId },
update: {
events: _event,
},
});
if (_member) {
res.status(200).send("OK");
} else {
generateError("Failed", req, next);
}
}
} catch (err) {
generatDefaultError(err, req, next);
}
};
控制台错误:
PrismaClientValidationError:
Invalid `prisma.member.upsert()` invocation:
{
where: {
id: '40d00e11-cfe7-4707-8f19-0c13cd7e7fc7'
},
update: {
events: {
~~~~~~
id: '52294035-3a4e-431a-ae1c-b2f12525dc3e',
name: 'Event Name',
date: new Date('2021-01-14T20:00:00.000Z'),
meetingPoint: 'Meeting Point',
meetingTime: 'Meeting Time',
details: 'Event details'
}
},
+ create: MemberCreateInput | MemberUncheckedCreateInput
}
Unknown arg `events` in update.events for type MemberUncheckedUpdateInput. Did you mean `posts`?
Argument create is missing.
Note: Lines with + are required
我是 Prisma 的新手,我正在努力思考它是如何工作的。任何帮助将不胜感激。
【问题讨论】: