我正在尝试获取类别的统计信息,我想在其中指定多个类别。我有这样的查询参数
$query_params = json_decode('{
"aggregated_by": "day",
"limit": 500,
"categories": "category1 category2",
"start_date": "2018-08-12",
"end_date": "2018-08-13"}');
很明显,我定义多个类别的方法是错误的,但是正确的方法是什么?我尝试了数组,逗号/空格分隔的值,但是没有运气。
答案 0 :(得分:0)
您只需要命名each category in a distinct argument。在您的示例中,它可能看起来像:
$query_params = json_decode('{
"aggregated_by": "day",
"limit": 500,
"categories": "category1",
"categories": "category2",
"start_date": "2018-08-12",
"end_date": "2018-08-13"}');
答案 1 :(得分: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而不包含嵌套数组中的数组键。