DateTimeConstraintExtensionAdditional.php 945 B

1234567891011121314151617181920212223242526272829303132333435
  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. && true == $this->requestStack->getMainRequest()->get('_time_constraint', true)
  21. ;
  22. }
  23. public function addWhere(QueryBuilder $queryBuilder): void
  24. {
  25. $rootAlias = $queryBuilder->getRootAliases()[0];
  26. $queryBuilder->innerJoin(sprintf('%s.organizationFunction', $rootAlias), 'organization_function');
  27. }
  28. }