Symfony erkennt Annotation Regex nicht

BLR

Erfahrenes Mitglied
Hallo zusammen,

nach dem ich den Pattern für meine Validierung gefunden habe, wollte ich den bei der Entity als Regex verwenden. In der Doku wird das sehr gut beschrieben:
http://symfony.com/doc/current/reference/constraints/Regex.html

Nun habe ich das nachgebaut:


PHP:
class MyUser implements UserInterface, \Serializable{
     
/*** @Assert\Regex( 
* pattern="/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[[:punct:]]).{8,20}$/", 
* match=false, 
* message="Your pw cannot contain a number" ) */
protected $plainPassword;

public function getPlainPassword(){
return $this->plainPassword;
}
public function setPlainPassword($plainPassword){
$this->plainPassword = $plainPassword;
}
}

und dann Frage ich nach dem Error so, wie ebenfalls in der Doku gezeigt:

PHP:
if($form->isSubmitted()){
$validator = $this->get('validator');
$errors = $validator->validate($user);if($form->isValid()){

}
}

Trotzdem bei der Eingabe von nur einem Zeichen, erkennt er den Regex nicht und listet
keine Errors im $errors auf.
Die Validierung über Annotationen ist explizit eingeschaltet
Was habe ich übersehen?
Danke
 
Ich kenne Symfony nicht. Aber deine Schreibweise als Komentar ist auf der verlinkten Seite nicht ersichtlich.

Aber der regex im ersten Beispiel auf der verlinkten Seite findet den ungültigen String. Er sucht nach einer Ziffer und gibt die Meldung zurück, dass keine Ziffern erlaubt sind.

Dein RegEx hingegen findt die gültigen Strings. Must du da ev. match=true setzen um das umzudrehen? Gemäss Anlitung wäre dem so
pattern
This required option is the regular expression pattern that the input will be matched against. By default, this validator will fail if the input string does not match this regular expression (via the preg_match PHP function). However, if match is set to false, then validation will fail if the input string does match this pattern.
 
Zurück