Как фильтровать entityBundle с помощью запроса graphql в drupal - PullRequest
0 голосов
/ 29 мая 2020

Я использую GraphQl api для Drupal 8. К сожалению, я не очень хорошо знаю ни одну из технологий.

У меня есть следующий запрос

query {
  nodeQuery (offset: 0, limit: 23) {
    entities {
      entityLabel
      entityBundle
      entityId
    }
    count
  }
}

, который возвращает вещи, которые выглядят примерно так

{
  "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
    }
  }
}

1 Ответ

0 голосов
/ 29 мая 2020

Хорошо, разобрался, на удивление

query {
  nodeQuery (offset: 0, limit: 23, filter: {conditions: [
    {operator: EQUAL, field: "type", value: ["section_page"]}]}) {
    entities {
      entityLabel
      entityBundle
      entityId
    }
    count
  }
}

, поскольку кажется, что тип поля также был таким же, как и значение entityBundle.

...