0

我正在尝试获取类别的统计信息,我想在其中指定多个类别。我有这样的查询参数

$query_params = json_decode('{
          "aggregated_by": "day", 
          "limit": 500,
          "categories": "category1 category2",
          "start_date": "2018-08-12", 
          "end_date": "2018-08-13"}');

显然我定义多个类别的方式是错误的,但正确的方式是什么?我尝试了数组,逗号/空格分隔的值,但没有运气。

4

2 回答 2

0

所以我通过将参数作为数组传递来解决这个问题:

$query = array('categories' => ['cat1','cat2']);

然后我修改了 sendgrid 客户端 buildUrl 方法,如下所示:

private function buildUrl($queryParams = null)
    {
        $path = '/' . implode('/', $this->path);
        if (isset($queryParams)) {
            $queryParams = \http_build_query($queryParams);
            $path .= '?' . preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $queryParams);
        }
        return sprintf('%s%s%s', $this->host, $this->version ?: '', $path);
    }

我添加了该preg_replace部分,以便正确构建 url,而不包括嵌套数组中的数组键。

于 2018-08-14T11:36:30.007 回答
0

您只需在不同的参数中命名每个类别。在您的示例中,它可能看起来像:

$query_params = json_decode('{ "aggregated_by": "day", "limit": 500, "categories": "category1", "categories": "category2", "start_date": "2018-08-12", "end_date": "2018-08-13"}');

于 2018-08-13T18:30:10.863 回答