Query Functions
Query Functions条件字段操作

条件字段操作

Included in the “Power Extensions” bundle

在 GraphQL 模式中添加元指令 @if@unless,以便有条件地对字段执行嵌套指令。

@if

@if 仅在条件值为 true 时才执行其嵌套指令。

在此 query 中,用户 "Leo""Peter" 因为包含在「特殊用户」数组中,其名称会被转换为大写,而 "Martin" 则不会:

query {
  users {
    name
      @passOnwards(as: "userName")
      @applyField(
        name: "_inArray"
        arguments: {
          value: $userName
          array: ["Leo", "John", "Peter"]
        }
        passOnwardsAs: "isSpecialUser"
      )
      @if(
        condition: $isSpecialUser
      )
        @strUpperCase
  }
}

...结果如下:

{
  "data": {
    "users": [
      {
        "name": "LEO"
      },
      {
        "name": "Martin"
      },
      {
        "name": "PETER"
      }
    ]
  }
}

@unless

@if 类似,但在条件为 false 时执行嵌套指令。

在此 query 中,其他用户不会被转换,只有用户 "Martin" 的名称会被转换为大写:

query {
  users {
    name
      @passOnwards(as: "userName")
      @applyField(
        name: "_inArray"
        arguments: {
          value: $userName
          array: ["Leo", "John", "Peter"]
        }
        passOnwardsAs: "isSpecialUser"
      )
      @unless(
        condition: $isSpecialUser
      )
        @strUpperCase
  }
}

...结果如下:

{
  "data": {
    "users": [
      {
        "name": "Leo"
      },
      {
        "name": "MARTIN"
      },
      {
        "name": "Peter"
      }
    ]
  }
}