GROUPING() Function
If you are using ROLLUP
, CUBE
, or GROUPING SETS
, you also probably need to
use the GROUPING()
function. This package provides a DQL function for the
GROUPING()
function that you can use in a DQL Query
or QueryBuilder
.
Function Registration
Registration without framework
use Doctrine\ORM\Configuration;
use Rekalogika\DoctrineAdvancedGroupBy\Function\GroupingFunction;
$configuration = new Configuration();
$configuration->addCustomNumericFunction('GROUPING', GroupingFunction::class);
Registration with Symfony
# config/packages/doctrine.yaml
doctrine:
orm:
dql:
numeric_functions:
GROUPING: Rekalogika\DoctrineAdvancedGroupBy\Function\GroupingFunction
Ad-Hoc Registration
use Doctrine\ORM\EntityManagerInterface;
/** @var EntityManagerInterface $entityManager */
$entityManager
->getConfiguration()
->addCustomNumericFunction('GROUPING', GroupingFunction::class);
Example Usage
use Doctrine\ORM\EntityManagerInterface;
/** @var EntityManagerInterface $entityManager */
$queryBuilder = $entityManager
->createQueryBuilder()
->from(SomeEntity::class, 'e')
->select('e.a AS a')
->addSelect('e.b AS b')
->addSelect('GROUPING(e.a, e.b)');