DateTimeConstraintExtensionAdditional.php 997 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Doctrine\Access\AdditionalExtension;
  4. use Doctrine\ORM\QueryBuilder;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. /**
  7. * Contrainte supplémentaire pour CurrentAccessExtension.
  8. * Ajoute un critère de dates.
  9. */
  10. class DateTimeConstraintExtensionAdditional implements AdditionalAccessExtensionInterface
  11. {
  12. public function __construct(
  13. private RequestStack $requestStack,
  14. ) {
  15. }
  16. public function support(string $name): bool
  17. {
  18. return
  19. $this->requestStack->getMainRequest()->isMethod('GET')
  20. ;
  21. }
  22. public function addWhere(QueryBuilder $queryBuilder): void
  23. {
  24. $rootAliases = $queryBuilder->getRootAliases();
  25. if (empty($rootAliases)) {
  26. throw new \LogicException('No root alias defined.');
  27. }
  28. $rootAlias = $rootAliases[0];
  29. $queryBuilder->innerJoin(sprintf('%s.organizationFunction', $rootAlias), 'organization_function');
  30. }
  31. }