Frage

Ich kann nicht sehen, was ich mit der folgenden Symfony 1.4 -Formularvalidierung falsch mache. Grundsätzlich möchte ich nur, dass alle vier Bedingungen korrekt berücksichtigt werden (erforderlich, min-Länge, maximaler, regelmäßiger Ausdruck). Es funktioniert tatsächlich, aber für den erforderlichen Zustand wird meine benutzerdefinierte Fehlermeldung nicht angezeigt und sagt stattdessen nur "Erforderlich". Gibt es eine Möglichkeit, meine Fehlermeldung zur Anzeige zu erhalten?

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array('required' => 'Please enter a username.', 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
)),

Eine weitere Sache, wenn ich den Regex-Validator entferte und ihn einfach in einen normalen Single-Line-String-Validator verwandelte, wird meine benutzerdefinierte Fehlermeldung angezeigt!?

Jeder?

Danke im Voraus.

War es hilfreich?

Lösung

Ich habe vor ungefähr zwei Wochen das gleiche Problem bemerkt und eine Lösung gefunden. Verschieben Sie einfach Ihre Nachricht an sfValidatorAnd Erklärung:

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array( 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
), array(), array('required' => 'Please enter a username.')),

Das hat mir geholfen, ich hoffe es hilft dir auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top