getAllAliases(), true)) { $qb->leftJoin('activity.thirdParties', 'acttparty'); } $qb->addSelect('acttparty.id AS thirdparty_aggregator'); $qb->addGroupBy('thirdparty_aggregator'); } public function applyOn(): string { return Declarations::ACTIVITY; } public function buildForm(FormBuilderInterface $builder) { // no form } public function getFormDefaultData(): array { return []; } public function getLabels($key, array $values, $data) { return function ($value): string { if ('_header' === $value) { return 'Accepted thirdparty'; } if (null === $value || '' === $value) { return ''; } $tp = $this->thirdPartyRepository->find($value); return $this->thirdPartyRender->renderString($tp, []); }; } public function getQueryKeys($data): array { return ['thirdparty_aggregator']; } public function getTitle(): string { return 'Group activity by linked thirdparties'; } }