Closed
Description
Symfony version(s) affected
6.3.1
Description
If you use #[MapQueryParameter] and type the property with Enum, the QueryParameterValueResolver only accepts scalars.
If I change the resolver to BackedEnumValueResolver, it only looks at the attributes and not the query.
The enum is never resolved and the value is null.
How to reproduce
Controller:
#[Route('/', name: 'test_param_enum']
public function testParameterAction(#[MapQueryParameter] Status $status = null)
{
}
OR
#[Route('/', name: 'test_param_enum']
public function testParameterAction(#[MapQueryParameter(resolver: BackedEnumValueResolver::class)] Status $status = null)
{
}
Enum:
enum Status: string
{
case New = 'new';
case Published = 'published';
}
Query:
/?status=new
Possible Solution
- Allow enum in QueryParameterValueResolver
- Check for query parameters in BackedEnumValueResolver
- Add a new resolver QueryParameterBackedEnumValueResolver
- ???
Additional Context
No response