DateTimeConstraintExtensionAdditional.php 959 B

1234567891011121314151617181920212223242526272829303132
  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. public function __construct(
  12. private RequestStack $requestStack
  13. ){
  14. }
  15. public function support(string $name): bool
  16. {
  17. return
  18. (
  19. $this->requestStack->getMainRequest()->isMethod('GET') &&
  20. $this->requestStack->getMainRequest()->get('_time_constraint', true) == 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. }