Symfony version(s) affected
6.2
Description
EntityValueResolver introduced in Symfony 6.2 priority (110) is higher than RequestAttributeValueResolver priority (100) which makes ParamConverter unusable in some cases. Only UserValueResolver has a higher priority.
How to reproduce
Consider this controller action:
#[Route('/asset-file/{assetFile}/distribute', name: 'distribute', methods: [Request::METHOD_POST])]
#[ParamConverter('jwDistribution', converter: SerializerParamConverter::class)]
public function distribute(AssetFile $assetFile, JwDistribution $jwDistribution): JsonResponse
{
return new JsonResponse();
}
In this case, AssetFile and JwDistribution represent Doctrine's entities, but JwDistribution doesn't exist in repository and should be converted by a custom converter (serializer). Instead, EntityValueResolver is used also for JwDistribution and it obviously fails to convert (because it's entity object without identifier). That must be at least some kind of regression. Could we do something about it?
Possible Solution
At least
RequestAttributeValueResolver should has a higher priority than EntityValueResolver.
Additional Context
No response