From 63f9726f34b56752bde5e33799c13be0282172d8 Mon Sep 17 00:00:00 2001 From: David Bennett Date: Wed, 15 Oct 2025 16:32:10 +0100 Subject: [PATCH] Fix validation errors when defining multiple query parameters on an operation using the `:property` template valid + property restriction. --- .../Factory/ParameterResourceMetadataCollectionFactory.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Metadata/Resource/Factory/ParameterResourceMetadataCollectionFactory.php b/src/Metadata/Resource/Factory/ParameterResourceMetadataCollectionFactory.php index feba608a1d..cdb7f7006d 100644 --- a/src/Metadata/Resource/Factory/ParameterResourceMetadataCollectionFactory.php +++ b/src/Metadata/Resource/Factory/ParameterResourceMetadataCollectionFactory.php @@ -93,9 +93,9 @@ public function create(string $resourceClass): ResourceMetadataCollection /** * @return array{propertyNames: string[], properties: array} */ - private function getProperties(string $resourceClass, ?Parameter $parameter = null): array + private function getProperties(string $resourceClass, ?Parameter $parameter = null, ?string $key = null): array { - $k = $resourceClass.($parameter?->getProperties() ? ($parameter->getKey() ?? '') : ''); + $k = $resourceClass.($parameter?->getProperties() ? ($parameter->getKey() ?? ($key ?? '')) : ''); if (isset($this->localPropertyCache[$k])) { return $this->localPropertyCache[$k]; } @@ -120,7 +120,7 @@ private function getDefaultParameters(Operation $operation, string $resourceClas $propertyNames = $properties = []; $parameters = $operation->getParameters() ?? new Parameters(); foreach ($parameters as $key => $parameter) { - ['propertyNames' => $propertyNames, 'properties' => $properties] = $this->getProperties($resourceClass, $parameter); + ['propertyNames' => $propertyNames, 'properties' => $properties] = $this->getProperties($resourceClass, $parameter, $key); if (null === $parameter->getProvider() && (($f = $parameter->getFilter()) && $f instanceof ParameterProviderFilterInterface)) { $parameters->add($key, $parameter->withProvider($f->getParameterProvider())); }