3

我需要在创建时设置相关字段的值,这可能吗?

详细信息:我有一个User带有字段的模型:email, displayname. 我有一个Verify带有字段的模型:code, action.

我在两个模型之间创建了这样的关系:

我想同时设置和createUser的相关字段。我试过这个:codeaction

mutation {
  createUser
  (
    email:"noit@mail.com",
    displayname:"noit",
    password:"123",
    code: "this is a code",
    action: "REGISTER"
  ) {
    id
  }
}

这失败了:

{
  "data": null,
  "errors": [
    {
      "message": "Unknown argument 'code' on field 'createUser' of type 'Mutation'. (line 2, column 76):\n  createUser(email: \"noit@mail.com\", displayname: \"noit\", password: \"123\", code: \"this is a code\", action: \"REGISTER\") {\n                                                                           ^",
      "locations": [
        {
          "line": 2,
          "column": 76
        }
      ]
    },
    {
      "message": "Unknown argument 'action' on field 'createUser' of type 'Mutation'. (line 2, column 100):\n  createUser(email: \"noit@mail.com\", displayname: \"noit\", password: \"123\", code: \"this is a code\", action: \"REGISTER\") {\n                                                                                                   ^",
      "locations": [
        {
          "line": 2,
          "column": 100
        }
      ]
    }
  ]
}
4

2 回答 2

4

我们专门设计了 Graphcool API 来尽可能简单地处理这种情况,你可以这样做:

mutation { 
  createUser (
    email:"noit@mail.com",
    displayname:"noit",
    password:"123",
    blahVerify: {
      code: "this is a code",
      action: "REGISTER"  
    }) {
    id
    blahVerify {
      id  
    } 
  }
}

注意嵌套blahVerify对象参数。

This answer to a similar question更加详细,还展示了如何使用 GraphQL 变量从 Apollo 客户端发送嵌套突变。

作为旁注,根据action验证节点的不同可能值,您可能希望使用枚举字段而不是字符串。您可以在文档中阅读有关枚举字段的更多信息。

于 2017-02-10T00:07:11.923 回答
0

您可以在scaphold.io上执行此操作。逻辑系统不仅包括突变回调。您可以在突变之前触发函数以在将输入保存到数据库之前验证/清理输入,之后管理将在同一突变有效负载中返回的这样的连接,以及异步(如突变回调)以启动长期存在的任务。您甚至可以将函数组合在一起以通过函数调用链传递元数据。

于 2017-02-09T20:06:23.303 回答