为什么类型为数组时prisma会自动加引号

问题描述 投票:0回答:1

我想以数组类型存储数据,但是当我尝试在 Prisma 中存储数组时,它会自动添加引号并导致错误。我使用 Next.js

我试过了

  const genre = formdata.genre
  const tag = formdata.tag
  console.log('genre', genre)

//another code

const result = await prisma.items.update({
    where: {
      id: id
    },
    data:{
      genre: genre,
      tag: tag
    }
  });

如果流派和标签是 ['hello', 'world!'], 控制台显示:流派 ['hello', 'world!'] 但错误说

Error: 
Invalid `prisma.items.update()` invocation:

{
  where: {
    id: 1
  },
  data: {
    genre: "['hello', 'world!']",
           ~~~~~~~~~~~~~~~~~~~~~
    tag: "['hello', 'world!']"
  }
}

Argument `genre`: Invalid value provided. Expected itemsUpdategenreInput or String[], provided String.

这是我的架构

model items{
  id Int @default(autoincrement()) @id
  name String
  genre String[]
  time DateTime
  tag String[]
  try Int
  creater String
}

javascript arrays prisma
1个回答
0
投票
  • Prisma 需要

    genre
    tag
    字段的字符串数组,但您传递的是包含整个数组的单个字符串。

  • 在传递它们之前将它们转换为实际的字符串数组

const genre = formdata.genre.split(',');
const genre = formdata.tag.split(',');

const result = await prisma.items.update({
  where: {
    id: id
  },
  data:{
    genre: genre,
    tag: tag
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.