5

私の Prisma スキーマでは、投稿とカテゴリの間に多対多の関係があります。@mapPostgres snake_case 命名規則に合わせてオプションを追加しました。

model Post {
  id         Int            @id @default(autoincrement())
  title      String
  body       String?
  categories PostCategory[]

  @@map("post")
}

model Category {
  id    Int            @id @default(autoincrement())
  name  String
  posts PostCategory[]

  @@map("category")
}

model PostCategory {
  categoryId Int      @map("category_id")
  postId     Int      @map("post_id")
  category   Category @relation(fields: [categoryId], references: [id])
  post       Post     @relation(fields: [postId], references: [id])

  @@id([categoryId, postId])
  @@map("post_category")
}

同時に複数のカテゴリの投稿を作成しようとしています。カテゴリがあれば、connectそのカテゴリを投稿にお願いします。カテゴリが存在しない場合は、作成したいと思います。作成部分はうまく機能していますが、接続部分に問題があります。

  await prisma.post.create({
    data: {
      title: 'Hello',
      categories: {
        create: [{ category: { create: { name: 'News' } } }],
        connect: {
          categoryId_postId: { categoryId: 1, postId: ? }, // This doesn't work, even if I had the postId
        },
      },
    },
  });

自分が持っているスキーマを使用して、既存のカテゴリを新しい投稿に接続するにはどうすればよいですか?

4

4 に答える 4

0

明示的な多対多の作成/既存のタグの更新詳細はこちら

let args =[1,2,3,4]
tags: {
      create: args.tags?.map(tagId=>({
          tag:{
              connect:{
                  id:tagId
              }
          }
      }))
    },
 }

于 2022-02-13T18:08:29.063 に答える