protected function filterProperty(string $property, $direction, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null)
{
if (!$this->isPropertyEnabled($property) || !$this->isPropertyMapped($property, $resourceClass)) {
return;
}
if (empty($direction) && isset($this->properties[$property])) {
// fallback to default direction
$direction = $this->properties[$property];
}
$direction = strtoupper($direction);
if (!in_array($direction, ['ASC', 'DESC'])) {
return;
}
$alias = 'o';
$field = $property;
if ($this->isPropertyNested($property)) {
list($alias, $field) = $this->addJoinsForNestedProperty($property, $alias, $queryBuilder, $queryNameGenerator);
}
$queryBuilder->addOrderBy(sprintf('%s.%s', $alias, $field), $direction);
}