turk porno porno escort rokettube
Ergebnis 1 bis 18 von 18

Thema: Validator Messages definieren

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

    Standard Validator Messages definieren

    Hallo,

    ich habe in einem Formular für ein einfaches Inputfeld folgenden Inputfilter:

    PHP-Code:
    $inputFilter->add(array(
                 
    'name'     => 'input_test',
                 
    'required' => true,
                 
    'allow_empty' => true,
                 
    'validators' => array(
                     array(
                         
    'name' => 'NotEmpty',
                         
    'options' => array(
                             
    'messages'=> array(
                                 \
    Zend\Validator\NotEmpty::IS_EMPTY => 'Die Eingabe ist fehlerhaft.',
                             ),
                         ),
                     ),
                 ),
             )); 

    Konkret geht es mir um folgendes: Die hier angegeben Message ist nicht die, die ich ändern möchte, es muss irgendeine andere Konstante geben ähnlich "\Zend\Validator\NotEmpty::IS_EMPTY". Ich würde gerne die Message ändern, wenn das Element nicht im Input Array zu finden ist (daher auch 'allow_empty' => true).
    Allgemein habe ich Probleme diese Konstanten zu finden. Bisher habe ich immer die api doc genommen (z.B. https://framework.zend.com/apidoc/2.....NotEmpty.html) aber in diesem Fall weiß ich auch dort nicht wo ich suchen soll. Gibt es da möglicherweise eine bessere Seite oder kann man die Konstante zurückgeben?

    Danke im Voraus!

  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
    Ich würde gerne die Message ändern, wenn das Element nicht im Input Array zu finden ist (daher auch 'allow_empty' => true).
    Genauer gesagt: Der Wert darf auch leer sein. Das ist etwas anderes als „wenn das Element nicht im Input Array zu finden ist“.

    Zitat Zitat von Wer? Beitrag anzeigen
    Allgemein habe ich Probleme diese Konstanten zu finden. Bisher habe ich immer die api doc genommen (z.B. https://framework.zend.com/apidoc/2.....NotEmpty.html) aber in diesem Fall weiß ich auch dort nicht wo ich suchen soll. Gibt es da möglicherweise eine bessere Seite oder kann man die Konstante zurückgeben?!
    Ganz fataler Fehler!

    Verwende eine IDE und schon werden dir die Konstanten automatisch vorgeschlagen oder du kannst per Maus-Klick an den Ursprung der Definition springen. Alles andere vergiss ganz schnell, denn eine IDE ist Pflichtprogramm!
    Geändert von Kaiuwe (22.07.2016 um 17:24 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Danke zunächst mal für die Antwort.

    Ich benutze ein IDE, aber das hilft mir auch nicht weiter. Es bleibt bei einem Durchprobieren von zig Konstanten. Mir würde eine Seite helfen, welches die Validatoren mit den zugehörigen Konstanten für die Messages auflistet und eventuell noch erklärt.

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

    Standard

    Ich habe nun etwas genauer nachgeforscht und habe keine andere Stelle gefunden, an der der Wortlaut "Value is required and can't be empty" benutzt wird außer bei der Konstanten IS_EMPTY. Deshalb verstehe ich nicht warum mein obiger Code die default Message nicht überschreibt, obwohl er das bei allen anderen Feldern ohne "allow_empty" macht.

  5. #5
    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
    Ich benutze ein IDE, aber das hilft mir auch nicht weiter. Es bleibt bei einem Durchprobieren von zig Konstanten.
    Ich kann dir leider nicht folgen. Du kennst den Validator und musst trotzdem die Konstanten durchprobieren? Ein Klick auf den Klassennamen öffnet dir doch die Validator-Klasse und dort stehen die Konstanten.

    Zitat Zitat von Wer? Beitrag anzeigen
    Mir würde eine Seite helfen, welches die Validatoren mit den zugehörigen Konstanten für die Messages auflistet und eventuell noch erklärt.
    Eine solche Seite gibt es nicht. Aber vielleicht schlägst du dies mal vor, denn immerhin arbeiten wir hier mit einem Open-Source-Projekt und Hilfe ist willkommen.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  6. #6
    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
    Deshalb verstehe ich nicht warum mein obiger Code die default Message nicht überschreibt, obwohl er das bei allen anderen Feldern ohne "allow_empty" macht.
    Ich kann dir leider hier auch nicht ganz folgen. Das Feld darf leer sein („allow_empty“), aber per Prüfklasse soll es dann doch nicht leer sein und sogar eine Fehlermeldung ausgeben?!
    Geändert von Kaiuwe (26.07.2016 um 12:57 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Das Feld darf leer sein, das stimmt, aber wenn es beispielsweise nicht im $values array ist, soll trotzdem ein Fehler angezeigt werden. Dort wird mir aktuell "Value is required and can't be empty" angezeigt und diesen Wortlaut finde ich nur bei der IS_EMPTY message. Ich würde gerne eine andere message nutzen, aber -unter der Annahme das es IS_EMPTY ist- funktioniert das Überschreiben des defaults nicht. Ich finde im obigen Code keinen Fehler und weiß deshalb nicht, wo das Problem liegt.

  8. #8
    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
    …aber wenn es beispielsweise nicht im $values array ist, soll trotzdem ein Fehler angezeigt werden.
    Über welchen Typ von Formularfeld sprechen wir hier?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Es geht im ein ganz normales Input-Feld

  10. #10
    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
    Es geht im ein ganz normales Input-Feld
    Und dort wird die Prüfklasse „InArray“ verwendet?!
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Ich glaube nicht, bin mir aber nicht sicher. Aktiv habe ich da nichts geändert

    PHP-Code:
            $input_test = new Element\Text('input_test');
            
    $input_test->setLabel('Test:');
            
    $Input_test->setAttributes(array('maxLength' => 90'size' => '58')); 

  12. #12
    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
    Ich glaube nicht…
    Was meinst du dann mit:
    Das Feld darf leer sein, das stimmt, aber wenn es beispielsweise nicht im $values array ist, soll trotzdem ein Fehler angezeigt werden.
    Was ist „$values array“?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Wenn das Formular zur Prüfung an den Controller gesendet wird, gibt es ein array, welches die eingegeben Werte enthält. Das kann natürlich auch anders heißen.
    PHP-Code:
    $values $request->getPost(); 

  14. #14
    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
    Wenn das Formular zur Prüfung an den Controller gesendet wird, gibt es ein array, welches die eingegeben Werte enthält. Das kann natürlich auch anders heißen.
    PHP-Code:
    $values $request->getPost(); 
    Und das soll man nun ahnen?!

    Schau mal in diesen Bugtracker-Eintrag, denn das sollte die Lösung sein.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Danke für den Link.

    Ich habe meinen Inputfilter folgendermaßen abgeändert:
    PHP-Code:
             $inputFilter->add(array(
                 
    'name'     => 'input_test',
                 
    'required' => true,
                 
    'allow_empty' => true,
                 
    'validators' => array(
                     array(
                         
    'name' => 'NotEmpty',
                         
    'options' => array(
                             
    'messages'=> array(
                                 \
    Zend\Validator\NotEmpty::IS_EMPTY => 'Die Eingabe ist fehlerhaft.'
                             
    ),
                         ),
                     ),
                     array(
                         
    'break_chain_on_failure' => true,
                         
    'name'                   => 'Zend\\InputFilter\\Validator\\Required',
                     )
                 ),   
             )); 
    Bekomme aber die Fehlermeldung:
    Code:
    Zend\Validator\ValidatorPluginManager::get was unable to fetch or create an instance for Zend\InputFilter\Validator\Required
    Es scheint so als ob diese Klasse nicht existiert (ich benutze v2.4.9).

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

    Standard

    Ich habe nicht gesehen, dass noch andere Files geändert und hinzugefügt werden müssen. Es scheint so, dass ohne Änderungen an zf-Files mein Problem nicht behoben werden kann, ich hatte schon an anderer Stelle ähnliche Lösungen gefunden, war mir aber damals noch sicher, das es auch einfachere Lösungen gibt.

  17. #17
    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?
    Ich habe meinen Inputfilter folgendermaßen abgeändert:
    Lass mal „required“ und „allow_empty“ weg, denn diese binden doch bereits die Prüfklasse „NotEmpty“ ein und daher lässt sich die Fehlermeldung nicht ändern. Schau dir mal die Methode „Zend\InputFilter\Input::isValid()“ an, denn dort lässt sich der Ablauf ablesen. Die Methode gehört auch dazu: „Zend\InputFilter\Input:repareRequiredValidationFailureMessage()

    Eine ganz andere Idee: Geh mal über die Methode „Zend\InputFilter\Input::setErrorMessage()“. Ich kann es leider gerade nicht testen, würde mich aber über eine Rückmeldung freuen.

    Zitat Zitat von Wer?
    Es scheint so als ob diese Klasse nicht existiert
    Richtig, so ist es auch dem Bugtracker zu entnehmen und deine IDE sagt dir dies ebenfalls. Du musst die Lösung adaptieren, denn kopieren kann man an der Stelle nichts.

    Zitat Zitat von Wer? Beitrag anzeigen
    Es scheint so, dass ohne Änderungen an zf-Files mein Problem nicht behoben werden kann…
    Nie! Nicht mal daran denken! (Stichwort: OOP!)


    Übrigens kann es nicht schaden, wenn du im Bugtracker mal einen Kommentar abgibst. So kommt das Problem wieder nach oben.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

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

    Standard

    Ich habe das Problem gelöst. Dazu muss man wissen, dass das hier beschriebene Problem genaugenommen als Workaround für ein anderes Problem gedacht war.

    Ich habe aber nun das eigentliche Problem gelöst, wodurch ich nun das hier nicht mehr lösen muss. Geholfen hat mir diese Frage: validation - ZF2 - Validator chain not running on empty elements - Stack Overflow

    Trotzdem danke für die Antworten, die haben mich quasi wieder auf das eigentliche Problem zurückgedrängt: Ich wollte ursprünglich einen Eigenen required-Validator bauen.

    Wen es intressiert hier die Code-Schnipsel:

    PHP-Code:
    $input = new BMInput('input');
    $input->setRequired(true);
    $input->getValidatorChain()->attach(new SwwValidator());
    $inputFilter->add($input); 
    PHP-Code:
    class BMInput extends \Zend\InputFilter\Input {
        
        protected function 
    injectNotEmptyValidator() {
            return;
        }

    PHP-Code:
    class SwwValidator extends AbstractValidator {
        const 
    SWW 'sww';
        protected 
    $messageTemplates = array(self::SWW => "'Input' ist ein Pflichtfeld.");
        
        public function 
    isValid($value, array $context = array())
        {
            
    $this->setValue($value);
            if (
    $value == "" && $context['art'] == 'test') {
                
    $this->error(self::SWW);
                return 
    false;
            }
            return 
    true;
        }


Ähnliche Themen

  1. NotEmpty Validator Messages
    Von stefan1989 im Forum ZF2 Einsteigerfragen
    Antworten: 1
    Letzter Beitrag: 22.07.2013, 11:29
  2. Form eigene Messages
    Von Yanko im Forum ZF2 Grundlagen
    Antworten: 1
    Letzter Beitrag: 24.04.2013, 09:45
  3. Antworten: 11
    Letzter Beitrag: 05.04.2012, 00:25
  4. Error Messages Zend_Form
    Von Spin_1987 im Forum Formulare
    Antworten: 3
    Letzter Beitrag: 21.06.2011, 18:26
  5. Messages in Plugins
    Von zf-neuling im Forum Einsteigerfragen
    Antworten: 2
    Letzter Beitrag: 30.01.2010, 22:20

Lesezeichen

Berechtigungen

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