验证错误:此行不是有效的字段或属性定义

Error validating: This line is not a valid field or attribute definition

我想知道为什么我的 模型Like-模型)不能像我预期的那样工作。

也许有人可以解释一下?

model User {
  id Int @id @default(autoincrement())
  likes Like[]
}

model Like {
  fromUser User @relation(fields: [fromUserId] references: [id])
  fromUserId Int
  toUser User @relation(fields: [toUserId] references: [id])
  toUserId Int
  @@id([fromUserId, toUserId])
}

错误显示:Error validating: This line is not a valid field or attribute definition.

指向fromUser User @relation(fields: [fromUserId] references: [id])toUser User @relation(fields: [toUserId] references: [id])

您需要按照以下方式为您的关系建模:

model User {
  id            Int    @id @default(autoincrement())
  likedUsers    Like[] @relation("likedUsers")
  usersWhoLiked Like[] @relation("usersWhoLiked")
}

model Like {
  id             Int   @id @default(autoincrement())
  likedUser      User? @relation("likedUsers", fields: [likedUserId], references: [id])
  likedUserId    Int?
  userWhoLiked   User? @relation("usersWhoLiked", fields: [userWhoLikedId], references: [id])
  userWhoLikedId Int?
}

每当您与模型有超过 1 个关系时,您需要向 disambiguate the relation 提供关系名称。

你还需要存储你喜欢过哪些用户,以及谁喜欢过当前用户。所以你需要两个关系。