Saya mengalami masalah dengan Prisma yang membuat saya kehilangan sedikit waktu, jadi saya akan menulis bagaimana saya menyelesaikannya.
Model tidak memiliki id
bidang ditandai sebagai @id
jadi saya menambahkan @@unique()
untuk mengatakan user
dan tweet
, bersama-sama, mendefinisikan unique
membatasi.
model Like {
user Int
tweet Int
createdAt DateTime @default(now())
@@unique([user, tweet])
}
Ini berarti kami tidak boleh memiliki lebih dari 1 entri (user, tweet)
yang sama entri.
Saat saya mencoba menghapus entri dengan
await prisma.like.delete({
where: {
user: 1,
tweet: 1
}
})
Saya mengalami pesan kesalahan:
PrismaClientValidationError:
Invalid `prisma.like.delete()` invocation:
{
where: {
user: 12,
~~~~
tweet: 22
~~~~~
}
~~~~~~~~~~~
}
Argument where of type LikeWhereUniqueInput needs exactly one argument, but you provided user and tweet. Please choose one. Available args:
type LikeWhereUniqueInput {
user_tweet?: LikeUserTweetCompoundUniqueInput
}
Yang harus saya lakukan adalah berubah
await prisma.like.delete({
where: {
user: 1,
tweet: 1
}
})
untuk
await prisma.like.delete({
where: {
user_tweet: {
user: 1,
tweet: 1
}
}
})
Dengan kata lain, menggabungkan bidang unik yang menggabungkannya dengan garis bawah.
Dalam retrospeksi, pesan kesalahan semacam menjelaskan hal ini, tetapi saya tidak mengerti.