如何在 drupal 中使用 graphql 查询过滤 entityBundle
How to filter on entityBundle using graphql query in drupal
我正在为 Drupal 8 使用 GraphQl api。不幸的是,我对这两种技术都不是特别了解。
我有以下查询
query {
nodeQuery (offset: 0, limit: 23) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
哪些 returns 看起来像这样的东西
{
"data": {
"nodeQuery": {
"entities": [
{
"entityLabel": "Frontpage",
"entityBundle": "section_page",
"entityId": "20"
},
....
一些返回的实体不是 section_page 实体,所以我想做一个过滤器,让我过滤掉它们。
我做了以下事情
query {
nodeQuery (offset: 0, limit: 23,filter: {conditions: {field: "entityBundle", value: "section_page", operator: EQUAL}}) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
这是行不通的,我真的不希望它有那么多,因为显然 entityBundle 不是节点的子节点,所以我应该以某种方式过滤实体内部的 entityBundle。还没想好怎么做。
当我 运行 查询是
时得到的错误
{
"errors": [
{
"message": "Internal server error",
"category": "internal",
"locations": [
{
"line": 32,
"column": 5
}
],
"path": [
"nodeQuery",
"entities"
]
},
{
"message": "Internal server error",
"category": "internal",
"locations": [
{
"line": 37,
"column": 5
}
],
"path": [
"nodeQuery",
"count"
]
}
],
"data": {
"nodeQuery": {
"entities": null,
"count": null
}
}
}
好吧,想通了,令人惊讶
query {
nodeQuery (offset: 0, limit: 23, filter: {conditions: [
{operator: EQUAL, field: "type", value: ["section_page"]}]}) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
因为字段的类型似乎也与 entityBundle 值相同。
我正在为 Drupal 8 使用 GraphQl api。不幸的是,我对这两种技术都不是特别了解。
我有以下查询
query {
nodeQuery (offset: 0, limit: 23) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
哪些 returns 看起来像这样的东西
{
"data": {
"nodeQuery": {
"entities": [
{
"entityLabel": "Frontpage",
"entityBundle": "section_page",
"entityId": "20"
},
....
一些返回的实体不是 section_page 实体,所以我想做一个过滤器,让我过滤掉它们。
我做了以下事情
query {
nodeQuery (offset: 0, limit: 23,filter: {conditions: {field: "entityBundle", value: "section_page", operator: EQUAL}}) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
这是行不通的,我真的不希望它有那么多,因为显然 entityBundle 不是节点的子节点,所以我应该以某种方式过滤实体内部的 entityBundle。还没想好怎么做。
当我 运行 查询是
时得到的错误{
"errors": [
{
"message": "Internal server error",
"category": "internal",
"locations": [
{
"line": 32,
"column": 5
}
],
"path": [
"nodeQuery",
"entities"
]
},
{
"message": "Internal server error",
"category": "internal",
"locations": [
{
"line": 37,
"column": 5
}
],
"path": [
"nodeQuery",
"count"
]
}
],
"data": {
"nodeQuery": {
"entities": null,
"count": null
}
}
}
好吧,想通了,令人惊讶
query {
nodeQuery (offset: 0, limit: 23, filter: {conditions: [
{operator: EQUAL, field: "type", value: ["section_page"]}]}) {
entities {
entityLabel
entityBundle
entityId
}
count
}
}
因为字段的类型似乎也与 entityBundle 值相同。