| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- declare(strict_types=1);
- namespace App\Doctrine\Access\AdditionalExtension;
- use Doctrine\ORM\QueryBuilder;
- use Symfony\Component\HttpFoundation\RequestStack;
- /**
- * Contrainte supplémentaire pour CurrentAccessExtension.
- * Ajoute un critère de dates.
- */
- class DateTimeConstraintExtensionAdditional implements AdditionalAccessExtensionInterface
- {
- public function __construct(
- private RequestStack $requestStack
- ) {
- }
- public function support(string $name): bool
- {
- return
- $this->requestStack->getMainRequest()->isMethod('GET')
- && $this->requestStack->getMainRequest()->get('_time_constraint', true) == true
- ;
- }
- public function addWhere(QueryBuilder $queryBuilder): void
- {
- $rootAliases = $queryBuilder->getRootAliases();
- if (empty($rootAliases)) {
- throw new \LogicException('No root alias defined.');
- }
- $rootAlias = $rootAliases[0];
- $queryBuilder->innerJoin(sprintf('%s.organizationFunction', $rootAlias), 'organization_function');
- }
- }
|