Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphql Prisma不返回创建的相关记录_Graphql_Prisma_Prisma Graphql - Fatal编程技术网

Graphql Prisma不返回创建的相关记录

Graphql Prisma不返回创建的相关记录,graphql,prisma,prisma-graphql,Graphql,Prisma,Prisma Graphql,我想创建一个新的GraphQLAPI,我有一个问题正在努力解决 该代码是开源的,可在以下网址找到: 我想创造一个变异来创造一个有关系的记录。。。在直接检查数据库时,似乎使用所有预期关系正确创建了记录,但是create方法返回的值缺少所有关系 。。。所以我在api上得到了一个错误,因为“不能为不可为null的字段Meme.author返回null。”。我无法找出代码中可能出现的错误 解析程序如下所示: ... const newMeme = await ctx.prisma.createMeme(

我想创建一个新的GraphQLAPI,我有一个问题正在努力解决

该代码是开源的,可在以下网址找到:

我想创造一个变异来创造一个有关系的记录。。。在直接检查数据库时,似乎使用所有预期关系正确创建了记录,但是
create
方法返回的值缺少所有关系

。。。所以我在api上得到了一个错误,因为“不能为不可为null的字段Meme.author返回null。”。我无法找出代码中可能出现的错误

解析程序如下所示:

...
const newMeme = await ctx.prisma.createMeme({
                author:  {
                    connect: { id: userId },
                },
                memeItems: {
                    create: memeItems.map(({
                        type,
                        meta,
                        value,
                        style,
                        tags = []
                    }) => ({
                        type,
                        meta,
                        value,
                        style,
                        tags: {
                            create: tags.map(({ name = '' }) => (
                                {
                                    name
                                }
                            ))
                        }
                    }))
                },
                tags: {
                    create: tags.map(({ name = '' }) => (
                        {
                            name
                        }
                    ))
                }
            });

            console.log('newMeme', newMeme);
...
此处
console.log
中的
newMeme
值(此解析器中返回的值)为:

其中返回的字段是自动生成的字段。所以我得到了一个错误,因为我试图找到作者:

mutation{
  meme(
    memeItems: [{
      type: TEXT
      meta: "test1-meta"
      value: "test1-value"
      style: "test1-style"
    }, {
      type: TEXT
      meta: "test2-meta"
      value: "test2-value"
      style: "test2-style"
    }]
  ) {
    id,
    author {
      displayName
    }
  }
}
有人知道是什么问题导致了这种情况吗?
(如前所述……直接检入数据库时,记录与预期的所有关系均已成功创建)。

如prisma文档中所述,prisma客户端函数承诺写入数据,例如,对于CreateMee函数,仅返回对象的标量字段:

在数据库中创建新记录时,create方法使用一个输入对象,该对象将记录的所有标量字段包装为 创建。它还提供了一种为应用程序创建关系数据的方法 模型,这可以使用嵌套对象写入来提供

每个方法调用都返回一个包含所有 刚刚创建的模型的标量字段

见:

要返回对象的关系,您需要使用info片段或fluent api再次读取对象,请参阅:

mutation{
  meme(
    memeItems: [{
      type: TEXT
      meta: "test1-meta"
      value: "test1-value"
      style: "test1-style"
    }, {
      type: TEXT
      meta: "test2-meta"
      value: "test2-value"
      style: "test2-style"
    }]
  ) {
    id,
    author {
      displayName
    }
  }
}