Skip to content

Commit 2f967d9

Browse files
authoredNov 4, 2024··
fix(doctrine): throw an exception when a filter is not found in a parameter (#6767)
1 parent 736ca04 commit 2f967d9

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed
 

‎src/Doctrine/Orm/Extension/ParameterExtension.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use ApiPlatform\Doctrine\Common\ParameterValueExtractorTrait;
1717
use ApiPlatform\Doctrine\Orm\Filter\FilterInterface;
1818
use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
19+
use ApiPlatform\Metadata\Exception\InvalidArgumentException;
1920
use ApiPlatform\Metadata\Operation;
2021
use ApiPlatform\State\ParameterNotFound;
2122
use Doctrine\ORM\QueryBuilder;
@@ -50,9 +51,11 @@ private function applyFilter(QueryBuilder $queryBuilder, QueryNameGeneratorInter
5051
}
5152

5253
$filter = $this->filterLocator->has($filterId) ? $this->filterLocator->get($filterId) : null;
53-
if ($filter instanceof FilterInterface) {
54-
$filter->apply($queryBuilder, $queryNameGenerator, $resourceClass, $operation, ['filters' => $values, 'parameter' => $parameter] + $context);
54+
if (!$filter instanceof FilterInterface) {
55+
throw new InvalidArgumentException(\sprintf('Could not find filter "%s" for parameter "%s" in operation "%s" for resource "%s".', $filterId, $parameter->getKey(), $operation?->getShortName(), $resourceClass));
5556
}
57+
58+
$filter->apply($queryBuilder, $queryNameGenerator, $resourceClass, $operation, ['filters' => $values, 'parameter' => $parameter] + $context);
5659
}
5760
}
5861

0 commit comments

Comments
 (0)
Please sign in to comment.