Symfony HttpClient GET 请求具有多个同名查询字符串参数

use*_*897 4 php symfony symfony4 symfony-http-client

我正在尝试以以下格式发出 API 请求:

/api/v1/courses?enrollment_state=active&include[]=total_students&include[]=term
Run Code Online (Sandbox Code Playgroud)

如何使用HttpClient组件查询字符串参数来执行此操作?

$response = $client->request('GET', '/api/v1/courses', [
      'query' => [
           'enrollment_state' => 'active',
           'include[]' => 'term',
           'include[]' => 'total_students',
       ],
]);
Run Code Online (Sandbox Code Playgroud)

由于重复的数组键,上述方法不起作用?

我也尝试过:

'include[]' => ['term', 'total_students']
Run Code Online (Sandbox Code Playgroud)

yiv*_*ivi 5

创建相当于:

https://www.example.com/?token=foo&abc[]=one&abc[]=two
Run Code Online (Sandbox Code Playgroud)

做就是了:

$client->request(
    'GET',
    'https://www.example.com/',
    [
        'query' => [
            'token' => 'foo',
            'abc' => ['one', 'two']
        ]
    ]
);
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的一个问题是,生成的查询字符串实际上采用以下格式:https://www.example.com/?token=foo&abc[0]=one&abc[1]=two。您知道如何在没有数字索引的情况下构建此查询吗? (6认同)