如何用PHP Guzzle创建含数组参数的GraphQL参数化查询
问题解决方法
错误根源
你的代码存在两个关键问题:
- 变量类型声明错误:将接收数组的变量声明为
Int类型,和Schema要求的[Int]数组类型不匹配; - 查询语法错误:给变量额外套了一层数组括号,导致实际传递的是嵌套数组(如
[[1,2]]),不符合参数预期。
修正后的代码
$body = [ 'query' => "query ($number: [Int]) { getObject(number: $number) { someData }}", 'variables' => [ 'number' => [1, 2], ] ];
关键修正点说明
- 变量类型匹配:将变量
$number的类型声明从Int改为[Int],和Schema中getObject的number参数类型保持一致; - 移除多余数组包裹:查询中直接使用
number: $number,因为变量本身就是数组类型,不需要再用[$number]包裹,避免产生嵌套数组的错误格式。
内容的提问来源于stack exchange,提问作者Gothic
相关产品推荐
相关产品推荐

