Skip to content

Commit 00df479

Browse files
committed
Provide a value if possible when parameter is not found
1 parent 398830c commit 00df479

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/QueryParameterValueResolver.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,12 @@ public function resolve(Request $request, ArgumentMetadata $argument): array
3131

3232
$name = $attribute->name ?? $argument->getName();
3333
if (!$request->query->has($name)) {
34-
if ($argument->isNullable() || $argument->hasDefaultValue()) {
35-
return [];
34+
if ($argument->hasDefaultValue()) {
35+
return [$argument->getDefaultValue()];
36+
}
37+
38+
if ($argument->isNullable()) {
39+
return [null];
3640
}
3741

3842
throw new NotFoundHttpException(sprintf('Missing query parameter "%s".', $name));

src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/QueryParameterValueResolverTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,14 +179,14 @@ public static function provideTestResolve(): iterable
179179
yield 'parameter not found but nullable' => [
180180
Request::create('/', 'GET'),
181181
new ArgumentMetadata('firstName', 'string', false, false, false, true, [new MapQueryParameter()]),
182-
[],
182+
[null],
183183
null,
184184
];
185185

186186
yield 'parameter not found but optional' => [
187187
Request::create('/', 'GET'),
188188
new ArgumentMetadata('firstName', 'string', false, true, false, attributes: [new MapQueryParameter()]),
189-
[],
189+
[false],
190190
null,
191191
];
192192

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy