api-platform按列添加groupig数据

时间:2017-08-17 05:21:26

标签: symfony api-platform.com

我是api-platform的新手,我试图通过给定的列添加自定义通用过滤器来对数据进行分组。

我写了这样的声音:

<?php

namespace AppBundle\Filter;

use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\AbstractFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
use Doctrine\ORM\QueryBuilder;

final class GroupFilter extends AbstractFilter
{
    protected function filterProperty(string $property, $value, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null)
    {

        $parameterName = $queryNameGenerator->generateParameterName($property);
        $columns = explode(';',$value);
        foreach($columns as $col) {
            $queryBuilder->addGroupBy($col);
        }
    }


    public function getDescription(string $resourceClass): array
    {
        $description = [];
//        foreach ($this->properties as $property => $strategy) {
            $description['groupBy'] = [
                'property' => 'Given column names',
                'type' => 'string',
                'required' => false,
                'swagger' => ['description' => 'Grouping data - used GroupBy - separate columns with ; '],
            ];
//        }

        return $description;
    }
}

但是在SQL中我应该列出要使用groupBy的列。 当我尝试使用过滤器时,我得到了:  错误:无法按未定义的标识或结果变量进行分组。

知道如何解决这个问题吗?

0 个答案:

没有答案