Skip to content

maxLength is not working when Length annotation is used #39

@roberto910907

Description

@roberto910907

@nacmartin I've found that the following annotation is not being serialized as expected:

Using the Length annotation from the Symfony's doc, it turns out that minLength is correctly being added but not maxLength.

I noticed that you implemented a new ValidatorGuesser for covering the missing guessMinLength in ValidatorTypeGuesser from the Symfony core.

I also found that you're using your custom class to guess the minLength based on some constraints but you're not doing the same for the other methods, eg: addMaxLength.

So, using something like:

    /**
     * @Assert\NotBlank()
     * @Assert\Length(
     *      min = 2,
     *      max = 50,
     *      minMessage = "Your first name must be at least {{ limit }} characters long",
     *      maxMessage = "Your first name cannot be longer than {{ limit }} characters"
     * )
     *
     * @ORM\Column(type="string", length=50)
     */
    private $name;

we will end up receiving the following json-schema:

name: {type: "string", title: "Name", minLength: 2, propertyOrder: 1}
minLength: 2
propertyOrder: 1
title: "Name"
type: "string"

as you can see the maxLength is missing.

For now, I figured out that I can still fix this by adding the maxLength option attr into my form field configuration but I would definitely wish to rely on my entity constraints.

Is there any way to solve this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions