我遇到问题,不确定是我对GraphQL的理解还是我正在使用的平台(Strapi)的问题。
上下文:对于我的用例,我想显示一个项目组合(或“用例”)。每个案例都有一组工作人员。此字段与案例的作者/创建者分开。问题在于,出于技术原因,案例的内容分为两种类型:草稿和公开。这意味着当我要获取所有文章时,需要在嵌套中进行“更深入的研究”,以包括贡献者数组。
Case
-- Draft
---- Caseinfo
------ Contributors
-- Published
---- CaseInfo
------ Contributors
当前,我可以获取allCase并获取每个案例的内容以及其贡献者:
// Used in Gatsby's `<StaticQuery />`
// This works fine.
allCase {
edges {
node {
contributors {
name
}
}
}
}
但是当我尝试包括嵌套
allCase(filter: {status: {eq: "published"}}) {
edges {
node {
published_contents {
id
title
// Cannot query field "contributors" on type "CasePublished_contents".
contributors {
name
}
}
}
}
}
那么,一旦“贡献者”字段嵌套更深一层,我便无法查询它?
从概念上讲,您可以像这样进行一个深层嵌套的GraphQL查询,并期望它遵循“树下”的所有关系内容类型吗?
答案 0 :(得分:0)
是的,您不能在较低级别上查询较高级别实体的字段。 contributors
字段仅存在于节点(CaseInfo
?)上,而不存在于CasePublished_contents
类型上。
只是不要嵌套它:
allCase(filter: {status: {eq: "published"}}) {
edges {
node {
published_contents {
id
title
}
contributors {
name
}
}
}
}