Symfony 5 - 现在工作的正则表达式验证器不起作用

Symfony 5 - Regex Validator which was working now doesn't work

所以我有一个带有@Assert/Regex

的实体
/**
     * @var string
     *
     * @ORM\Column(name="firstname", type="string", length=30, nullable=false, options={"comment"="input#text&[A-Za-z \-\'àâäçéèêëîïôöùûüÿæœÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸÆŒ]{2,30}@Prénom"})
     * @Assert\NotBlank (
     *     message="Le champs [prénom] ne peut être vide",
     *     groups={"registration"}
     * )
     * @Assert\Regex (
     *     pattern="/^[A-Za-z \-\'àâäçéèêëîïôöùûüÿæœÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸÆŒ]{2,30}$/",
     *     message="Champs prénom : La saisie est invalide (min: 2, max: 30)")
     */
    private $firstname;

    /**
     * @var string
     *
     * @ORM\Column(name="lastname", type="string", length=30, nullable=false, options={"comment"="input#text&[A-Za-z \-\'àâäçéèêëîïôöùûüÿæœÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸÆŒ]{2,30}@Nom"})
     * @Assert\NotBlank (
     *     message="Le champs [nom] ne peut être vide",
     *     groups={"registration"}
     * )
     * @Assert\Regex (
     *     pattern="/^[A-Za-z \-\'àâäçéèêëîïôöùûüÿæœÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸÆŒ]{2,30}$/",
     *     message="Champs nom : La saisie est invalide (min: 2, max: 30)")
     */
    private $lastname;

我的控制器是这样的(我故意删除了大部分代码以使其易于使用)

public function register(ValidatorInterface $validator, EntityManagerInterface $emi): Response
{
    $newUsers = new Users();
            
    // Setting the values
    $newUsers
        ->setFirstname($request->get('firstname'))
        ->setLastname($request->get('lastname'));

    $errorsUsers = $validator->validate($newUsers, null, ['registration']);
    foreach ($errorsUsers as $v){
        $msgErrors .= "\n- " . $v->getMessage() . ".";
    }
}

在一切正常之前。现在 Assert\NotBlank 仍在工作,但 Assert\Regex 不工作。就像,它甚至都没有比较它。

我试过了:

我不知道为什么它不再工作了,这就是为什么我讨厌 symfony 因为它甚至不给出错误或消息开始。

如果有人遇到这个问题并且有解决方案,请告诉我。

提前致谢。

好的,问题是我没有把组也放在正则表达式中。

因此,对于您在 var 上添加的每个断言,您需要指定组。

我没想到,因为在文档中它说,如果您不指定组,则意味着它适用于所有内容。显然不是。

谢谢医生