DateTimeConstraintExtension.php 882 B

1234567891011121314151617181920212223242526272829
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Doctrine\Access\Extensions;
  4. use App\Doctrine\Access\AccessExtensionInterface;
  5. use Doctrine\ORM\QueryBuilder;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. class DateTimeConstraintExtension implements AccessExtensionInterface {
  8. public function __construct(
  9. private RequestStack $requestStack
  10. ){
  11. }
  12. public function support(string $name): bool
  13. {
  14. return
  15. (
  16. $this->requestStack->getMainRequest()->isMethod('GET') &&
  17. $this->requestStack->getMainRequest()->get('_time_constraint', true) == true
  18. );
  19. }
  20. public function addWhere(QueryBuilder $queryBuilder): void
  21. {
  22. $rootAlias = $queryBuilder->getRootAliases()[0];
  23. $queryBuilder->innerJoin(sprintf('%s.organizationFunction', $rootAlias), 'organization_function');
  24. }
  25. }