【问题标题】:How to add filterInput field in amplify?如何在放大中添加 filterInput 字段?
【发布时间】:2021-11-12 09:48:38
【问题描述】:

我得到了以下架构(schema.graphql),


type Admin @model @auth(rules: [{ allow:owner }]) {
    id: ID!
    name: String!
}

type Staff @model @auth(rules: [{ allow:owner }]) {
    id: ID!
    name: String!
    admin: Admin @connection
}

现在我想获取员工,按管理员 ID 过滤。 但是当我跑的时候

API.graphql(
graphqlOperation(queries.listStaffs,
    {
        filter: {
            admin: {
                eq: adminId
            }
        }
    } 
))

它在下面抛出一个错误。

The variables input contains a field name 'admin' that is not defined for input object type 'ModelStaffFilterInput'

因为admin 没有过滤器输入字段。在 AppSync 控制台中,

input ModelStaffFilterInput {
    id: ModelIDInput
    name: ModelStringInput
    and: [ModelStaffFilterInput]
    or: [ModelStaffFilterInput]
    not: ModelStaffFilterInput
}

在这种情况下,如何将过滤器输入字段添加到 GraphQL 架构中? 你能提供任何amplify/backend/api/pjname/shema.graphql 的例子吗?

【问题讨论】:

    标签: amazon-web-services aws-amplify aws-appsync


    【解决方案1】:

    好的,我得到了这项工作。 我所要做的就是明确地输入关系的密钥。

    
    type Admin @model @auth(rules: [{ allow:owner }]) {
        id: ID!
        name: String!
    }
    
    type Staff @model @auth(rules: [{ allow:owner }]) {
        id: ID!
        name: String!
        admin: Admin! @connection
        staffAdminId: ID! # this field is needed, for generating filterInput
    }
    
    

    然后是amplify push,它使用staffAdminId 生成架构:

    input ModelStaffFilterInput {
        staffAdminId: ModelIDInput
        id: ModelIDInput
        name: ModelStringInput
        and: [ModelStaffFilterInput]
        or: [ModelStaffFilterInput]
        not: ModelStaffFilterInput
    }
    

    然后像这样运行查询

    listStaffs(filter: {staffAdminId: {eq: "adminID"}})
    

    而且这个staffAdminId 已经在表中,所以除了graphql 架构之外它不会影响。

    我是从:

    https://github.com/aws-amplify/amplify-cli/issues/300#issuecomment-475786380

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多