turk porno porno escort rokettube
Ergebnis 1 bis 4 von 4

Thema: Input mit unterschiedlichem Verhalten für jeden Validator

  1. #1
    Benutzer
    Registriert seit
    31.10.2012
    Ort
    Kaiserslautern
    Beiträge
    47
    Thanks
    7
    Thanked 9 Times in 3 Posts

    Standard Input mit unterschiedlichem Verhalten für jeden Validator

    Hallo,

    ich habe folgendes Input-Feld:

    PHP-Code:
            $input = new Input('input');
            
    $input->setContinueIfEmpty(true);
            
    $input->getValidatorChain()->attach((new ModRequiredValidator())->setMessage("'Pflichtfeld."), true);
            
    $input->getValidatorChain()->attach((new Regex(array('pattern' => '#^[A-Z][0-9]\.[0-9]{1,2}$#')))->setMessage("Bitte in Form 'A1.23'.")); 
    Ich möchte gerne, dass der erste Validator immer geprüft wird, also auch bei leerem Input, der zweite Validator allerdings nur, wenn etwas in dem Feld steht. ModRequiredValidator ist ein Selbst geschriebener Validator, der Ausnahmen macht, dardurch kann es sein, dass ein Feld leer ist, aber trotzdem von ModReqiredValidator akzeptiert wird. Wenn ich nun aber "allowEmpty" auf true setze, dann funktioniert der erste Vaidator nicht wie gewünscht. Im Prinzip würde ich gerne "allowEmpty" pro Validator definieren. Gibt es dafür eine Möglichkeit?

    Bevor dies als Antwort kommt: Ein möglicher Workaround wäre einen ModRegex-Validator zu definieren, der die leere Eingabe erlaubt. Ich finde diese Lösung allerdings nicht sehr sauber, auch da ich das gleiche Problem noch mit Email, Digits und Date Validatoren habe.

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Wer? Beitrag anzeigen
    Im Prinzip würde ich gerne "allowEmpty" pro Validator definieren. Gibt es dafür eine Möglichkeit?
    Nein, dies gibt es nicht.

    Du könntest aber vielleicht deinen Validator erweitern und dort intern eine Kette von Prüfklassen („ValidatorChain“) verwenden. Damit wäre es möglich, die Validatoren je nach Bedarf hinzuzufügen oder zu entfernen. (Per „Zend\Validator\Callback“ ließe sich dies ebenfalls implementieren.)

    (Hinweis nebenbei: eine Kette von Prüfklassen („ValidatorChain“) implementiert das Interface „Zend\Validator\ValidatorInterface“ und kann damit wie eine einzelne Validator-Klasse verwendet werden.)
    Geändert von Kaiuwe (10.10.2016 um 14:44 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Wer? (10.10.2016)

  4. #3
    Benutzer
    Registriert seit
    31.10.2012
    Ort
    Kaiserslautern
    Beiträge
    47
    Thanks
    7
    Thanked 9 Times in 3 Posts

    Standard

    Danke für die schnelle Antwort, ich werde mich bei Gelegenheit, mal etwas intensiver mit der ValidatorChain befassen. Für den Moment macht es auch der oben angesprochene Workaround (den habe ich in der Zwischenzeit implementiert):

    PHP-Code:
    class ModRegexlValidator extends Regex {

        public function 
    isValid($value, array $context = array())
        {
            if(
    $value == ""){
                return 
    true;
            } else {
                return 
    parent::isValid($value$context);
            }
        }


  5. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Wer?;82916Für
    den Moment macht es auch der oben angesprochene Workaround (den habe ich in der Zwischenzeit implementiert):
    Ich würde dies sogar als korrekt ansehen, wenn das das explizite Verhalten der Prüfklasse ist.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

Ähnliche Themen

  1. input nicht mit label umgeben
    Von Frau Bauer im Forum Formulare
    Antworten: 4
    Letzter Beitrag: 12.02.2013, 16:59
  2. Antworten: 28
    Letzter Beitrag: 07.09.2012, 22:10
  3. Wann wird aus <input> ein <input dojoType="...">
    Von itsame69 im Forum Javascript + RIA
    Antworten: 0
    Letzter Beitrag: 06.08.2010, 12:50
  4. input felder mit Formular verknüpfen
    Von Dunkelziffer im Forum Formulare
    Antworten: 6
    Letzter Beitrag: 25.02.2010, 15:32
  5. Antworten: 1
    Letzter Beitrag: 23.02.2009, 20:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •