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

Lighthouse-PHP GraphQL如何通过ID数组批量更新InternalOrder字段

解决方案

你可以通过Lighthouse-PHP内置的@updateMany指令实现批量更新需求,具体调整步骤如下:

步骤1:修改Schema定义

  • 首先调整UpdateInternalOrders输入类型,将id_internal_orders字段从单值Int改为Int数组
  • 将原Mutation的@update指令替换为@updateMany,同时将返回值改为数组类型,适配多条返回结果

修改后的Schema代码如下:

extend type Mutation {
    # 替换为@updateMany,返回值改为数组
    updateInternalOrder(input: UpdateInternalOrders! @spread): [InternalOrders!]! @updateMany(primaryKey: "id_internal_orders")
}

input UpdateInternalOrders {
    # 改为非空Int数组,支持传入多个ID
    id_internal_orders: [Int!]!
    state: InternalOrdersStatesHasOne
    qty: Int
    id_supplier: Int
}

input InternalOrdersStatesHasOne {
    connect: Int
}

注:如果你的InternalOrders模型主键已经是id_internal_orders,可以省略@updateMany的primaryKey参数,否则需要显式指定批量匹配的字段。

步骤2:调整Mutation查询语句

你的预期写法基本可用,只需要调整返回值适配数组结构即可,示例如下:

mutation{
    updateInternalOrder( input: {
        state: {
            connect: 1
        }
        id_internal_orders: [1,2]
    }){
        id_internal_orders
        qty
        state {
            id_internal_orders_states,
            name
        }
    } 
}

调用后会返回所有更新成功的内部订单数据,同时完成id为1、2的两个订单的state关联更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:39:05