Prisma: модели и отношения 1-n

у меня две таблицы Userа также Tasksи у пользователя может быть много задач, однако я хочу, чтобы запрос возвращал конкретную задачу, извлекая детали для задачи с автором и назначенным пользователям из пользовательской таблицы, обычно это делается с использованием псевдонимов. БД это mysql - спасибо

      //schema.prisma

model User {
  id         Int    @id @default(autoincrement())
  taskby     Task[] @relation("taskBy")
  taskto     Task[] @relation("taskTo")
}

model Task {
  id              Int      @id @default(autoincrement())
  created_at      DateTime @default(now())
  updated_at      DateTime @updatedAt
  assigned_to_uid Int
  assigned_by_uid Int
  assigned_to     User     @relation("taskTo",fields: [assigned_to_uid], references: [id])
  assigned_by     User     @relation("taskBy",fields: [assigned_by_uid], references: [id])
}

API:

      if (id) {
    res = await prisma.task.findUnique({
      where: { id },
      include: {
        assigned_to: true
      },
      include: {
        assigned_by: true
      },
    })
  } else {...

Желаемый ответ:

      {
  "id": 2,
  "taskid": 2,
  "assigned_to_uid": 1,
  "assigned_by_uid": 2,
  "assigned_by": {
    "id": 2,
    "firstName": "user2",
  },
"assigned_to": {
    "id": 1
    "firstName": "user1",
  },
}

1 ответ

Вы должны быть в состоянии получить желаемый ответ, используя следующий запрос:

        if (id) {
    const response = await prisma.task.findUnique({
      where: { id },
      include: {
        assigned_to: true,
        assigned_by: true,
      },
    });

    console.log(response);
  }

Ответ на вышеуказанный запрос:

      {
  id: 1,
  created_at: 2022-02-28T07:22:06.917Z,
  updated_at: 2022-02-28T07:22:06.918Z,
  assigned_to_uid: 2,
  assigned_by_uid: 1,
  assigned_to: { id: 2, firstName: 'Jane', lastName: 'Doe' },
  assigned_by: { id: 1, firstName: 'John', lastName: 'Doe' }
}
Другие вопросы по тегам