You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amplify中为GraphQL关联字段新增filterInput过滤字段?

问题原因

你遇到的报错是因为@connection关联生成的外键默认是隐式创建的,不会暴露到自动生成的ModelStaffFilterInput过滤配置中,因此你无法直接通过关联对象admin进行过滤。

解决方案

你只需要在Staff模型中显式声明关联外键字段,并且在@connection指令中绑定该外键即可,修改后的完整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关联的外键字段
    adminId: ID!
    # 通过fields参数绑定外键,关联逻辑和之前完全一致
    admin: Admin @connection(fields: ["adminId"])
}

该配置和你原有隐式外键的逻辑完全兼容,已有数据不需要做迁移调整。

后续操作
  1. 修改完schema后执行amplify push部署更新,部署完成后自动生成的ModelStaffFilterInput就会新增adminId对应的过滤字段
  2. 将原有查询代码的过滤条件从admin改为adminId即可正常使用:
API.graphql(
graphqlOperation(queries.listStaffs,
    {
        filter: {
            adminId: {
                eq: adminId
            }
        }
    } 
))

内容的提问来源于stack exchange,提问作者yozibak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:15:06