Closed
Description
Symfony version(s) affected
5.3.x
Description
Java Bean validation can be applied on method argument in a MVC Controller or other Jakarta EE components, but this does not work in Symfony.
I got the following exception when adding attributes on method arguments of a Controller.
Uncaught Error: Attribute "Symfony\Component\Validator\Constraints\PositiveOrZero" cannot target parameter (allowed targets: method, prop
erty)
How to reproduce
Create a method like this.
#[Route(path: "", name: "all", methods: ["GET"])]
function all(string $keyword, #[PositiveOrZero] int $offset = 0, #[Positive] int $limit = 20): Response
{
$data = $this->posts->findByKeyword($keyword||'', $offset, $limit);
return $this->json($data);
}
Possible Solution
Make it work, and if validation failed throws an ContraintsVoilationException
.
Additional Context
Add a built-in EventListener
to handle this exception by default.