参数“primaryMuscles”:提供的值无效。预期的 StringNullableListFilter,提供 (String)

Argument `primaryMuscles`: Invalid value provided. Expected StringNullableListFilter, provided (String)

提问人:Tomas Bubenik 提问时间:11/12/2023 更新时间:11/12/2023 访问量:30

问:

const filteredExercises =  await prisma.exercise.findMany({
         where: {
           force: undefined,
           level: undefined,
           mechanic: undefined,
           equipment: undefined,
           primaryMuscles: [
             "Shoulders"
           ],
           ~~~~~~~~~~~~~
           category: undefined
         }
       })

参数:提供的值无效。预期的 StringNullableListFilter,提供 (String)。primaryMuscles

async function getFilteredExercises(req,res){
  const {selectedSkillLevel,selectedForce,selectedMechanic,selectedEquipment,selectedPrimaryMuscle,selectedCategory} = req.body
  const filteredExercises =  await prisma.exercise.findMany({
    where: {
      force:selectedForce,
      level:selectedSkillLevel,
      mechanic:selectedMechanic,
      equipment:selectedEquipment,
      primaryMuscles: selectedPrimaryMuscle,
      category:selectedCategory
    }
    
  })
  res.status(200).json({filteredExercises})
}
model exercise {
  id               Int           @id @unique @default(autoincrement())
  name             String        @unique
  force            String?
  level            String
  mechanic         String?
  equipment        String?
  primaryMuscles   String[]
  secondaryMuscles String[]
  instructions     String[]
  category      String
  workoutPlans     WorkoutPlan[]
}
JavaScript 节点.js PostgreSQL Prisma

评论

1赞 XPD 11/13/2023
请在问题中添加更多信息,并尝试遵循这些准则。stackoverflow.com/help/minimal-reproducible-example

答:

0赞 Muhammad Sarmad 11/12/2023 #1

将 Prisma 与该函数一起使用时,参数似乎存在问题。从错误通知中可以看出,输入的值可能未采用正确的格式,即 StringNullableListFilter。exercise.findManyselectedPrimaryMuscleselectedPrimaryMuscle

您可以考虑进行以下更改:

const filteredExercises = await prisma.exercise.findMany({
  where: {
    force: selectedForce,
    level: selectedSkillLevel,
    mechanic: selectedMechanic,
    equipment: selectedEquipment,
    primaryMuscles: { contains: selectedPrimaryMuscle }, // Use contains for matching strings in an array
    category: selectedCategory
  }
});

{ contains: selectedPrimaryMuscle }在此调整中用于匹配数组中的。Prisma 模型中的数组旨在包含一个或多个值,这假定它是一个字符串。根据您所需的匹配标准进行调整。selectedPrimaryMuscleprimaryMusclesprimaryMusclesselectedPrimaryMuscle

评论

0赞 Tomas Bubenik 11/13/2023
没有工作“包含”是未知的论点。