getAllAliases(), true)) { $qb->leftJoin('activity.location', 'actloc'); } $qb->addSelect(sprintf('actloc.name AS %s', self::KEY)); $qb->addGroupBy(self::KEY); } public function applyOn(): string { return Declarations::ACTIVITY; } public function buildForm(FormBuilderInterface $builder): void { // no form required for this aggregator } public function getNormalizationVersion(): int { return 1; } public function normalizeFormData(array $formData): array { return []; } public function denormalizeFormData(array $formData, int $fromVersion): array { return []; } public function getFormDefaultData(): array { return []; } public function getLabels($key, array $values, $data): callable { return function ($value): string { if ('_header' === $value) { return 'export.aggregator.activity.by_location.Activity Location'; } if (null === $value || '' === $value) { return ''; } return $value; }; } public function getQueryKeys($data): array { return [self::KEY]; } public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface { return 'export.aggregator.activity.by_location.Title'; } }