【问题标题】:prismic graphql querying single user棱镜 graphql 查询单个用户
【发布时间】:2019-01-27 06:48:18
【问题描述】:

我试图弄清楚如何通过 id 从 graphql 架构中查询单个用户。我正在使用 graphiql 工具,并且能够获取所有用户。

{
    allPrismicUsers {
      edges {
        node {
          id
        data {
          name
        }
        }
      }
    }
}

输出:

{
  "data": {
    "allPrismicUsers”: {
      "edges": [
        {
          "node": {
            "id": "Prismic__User__WzKFwywAABmiZk_4",
            "data": {
              "name": “John Doe”
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKDZywAABmiZkYp",
            "data": {
              "name": “Jane Doe“
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKGDiwAAJSiZlFL",
            "data": {
              "name": “Cat Doe”
            }
          }
        }
      ]
    }
  }
}

我在架构上也有 prismicUser()

query {
  prismicUser {
    id
    data {
      name
    }
  }
}

输出:

{
  "data": {
    "prismicUser": {
      "id": "Prismic__User__WzKGDiwAAJSiZlFL",
      "data": {
        "name": "Cat Doe"
      }
    }
  }
}

我正在尝试根据特定 ID 查询用户,但不确定我查询的方式是否错误。 我试过这个。

query {
  prismicLocation(id: "Prismic__User__WzKDZywAABmiZkYp") {
    data {
      name
    }
  }
}

我收到一个错误

{ “错误”:[ { "message": "参数 \"id\" 的值无效 \"Prismic__User__WzKDZywAABmiZkYp\"。\n预期 \"prismicUserIdQueryString_2\", 找不到对象。", “用户”:[ { “行”:25, “列”:23 } ] } ] }

如何根据 id 呼叫特定用户?

【问题讨论】:

    标签: graphql gatsby prismic.io


    【解决方案1】:

    根据Gatsby GraphQL reference,Gatsby 允许您按 GraphQL 中的任何字段过滤结果(使用 eqne 等运算符)

    gatsby-source-prismic 插件提供了一个名为prismicId 的字段(即W1syKSIAAAzdN1Jg)。

    这是一个示例查询:

    {
      prismicUser(prismicId:{eq:"WzKDZywAABmiZkYp"}) {
        data {
          name
        }
      }
    }
    

    但您也可以通过id查询:

    prismicUser(id:{eq:"Prismic__User__WzKDZywAABmiZkYp"})
    

    【讨论】:

    • 感谢 Gabe 这真的很有帮助,非常感谢。我在 Gatsby GraphQL 参考页面上遇到 503 错误?我可以在其他任何地方准备好或有如何遍历查询的示例。很高兴有一个参考列表在某处显示代码示例。我的猜测是,如果 503 不存在,这就是 Gatsby GraphQL 参考试图做的事情。
    • Gabe 有什么理由不使用 prismicId 对 allPrismicUsers 使用过滤器选项吗?还是改用 prismicUser 更快。不确定两者之间的区别是什么,除了一个返回 all 而另一个只返回 1 ?所以我认为 prismicUser 是在这种情况下要走的路??
    猜你喜欢
    • 2021-11-06
    • 2021-04-16
    • 2019-05-08
    • 2019-02-08
    • 1970-01-01
    • 2020-03-07
    • 2023-03-14
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多