ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\DateFilter::filterProperty PHP Method

filterProperty() protected method

protected filterProperty ( string $property, $values, Doctrine\ORM\QueryBuilder $queryBuilder, ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null )
$property string
$queryBuilder Doctrine\ORM\QueryBuilder
$queryNameGenerator ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface
$resourceClass string
$operationName string
    protected function filterProperty(string $property, $values, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null)
    {
        // Expect $values to be an array having the period as keys and the date value as values
        if (!is_array($values) || !$this->isPropertyEnabled($property) || !$this->isPropertyMapped($property, $resourceClass) || !$this->isDateField($property, $resourceClass)) {
            return;
        }
        $alias = 'o';
        $field = $property;
        if ($this->isPropertyNested($property)) {
            list($alias, $field) = $this->addJoinsForNestedProperty($property, $alias, $queryBuilder, $queryNameGenerator);
        }
        $nullManagement = $this->properties[$property] ?? null;
        if (self::EXCLUDE_NULL === $nullManagement) {
            $queryBuilder->andWhere($queryBuilder->expr()->isNotNull(sprintf('%s.%s', $alias, $field)));
        }
        if (isset($values[self::PARAMETER_BEFORE])) {
            $this->addWhere($queryBuilder, $queryNameGenerator, $alias, $field, self::PARAMETER_BEFORE, $values[self::PARAMETER_BEFORE], $nullManagement);
        }
        if (isset($values[self::PARAMETER_AFTER])) {
            $this->addWhere($queryBuilder, $queryNameGenerator, $alias, $field, self::PARAMETER_AFTER, $values[self::PARAMETER_AFTER], $nullManagement);
        }
    }