getAllAliases(), true)) { $qb->join('cal.location', 'calloc'); } $qb->addSelect('IDENTITY(cal.location) as location_aggregator'); $qb->addGroupBy('location_aggregator'); } public function applyOn(): string { return Declarations::CALENDAR_TYPE; } public function buildForm(FormBuilderInterface $builder): void { // no form } 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): \Closure { return function ($value): string { if ('_header' === $value) { return 'Location'; } if (null === $value || '' === $value) { return ''; } $l = $this->locationRepository->find($value); return $l->getName(); }; } public function getQueryKeys($data): array { return ['location_aggregator']; } public function getTitle(): string { return 'Group calendars by location'; } }