[Frage] Formularfelder validieren - geht nicht TYPO3-Version: 6.0.4

  • kingmar kingmar
    T3PO
    0 x
    17 Beiträge
    0 Hilfreiche Beiträge
    06. 08. 2013, 15:45

    Hallo Leute, ich habe ein Problem mit der Validierung von Formularfeldern. Ich habe ein Formular mit Vorname, Nachname und Email und möchte diese Felder validieren. Im Extension Builder hab ich angegeben, dass diese Felder "required" sein sollen. Über CLASSES->DOMAIN->MODEL zeigt er mir auch an:

    1. /**
    2. /**
    3. * email
    4. *
    5. * @var \string
    6.   * @validate NotEmpty
    7. * @validate \TYPO3\Parzelle2\Validation\Validator\EmailValidator
    8. */
    9. protected $email;

    * @validate NotEmpty -> Das sollte doch eigentlich heißen, dass es nicht leer sein soll. Wenn ich habe etwas in das Formular reinschreibe und dann speicher, wird das Formular so gespeichert ohne eine Fehlermeldung rauszugeben, wenn ich z.B. den Vorname leer lasse?! Was muss ich machen und zu Testen, ob in allen drei Feldern Inhalt steht.

    Ich habe schon unter CLASSES den Ordner Validation->Validator erstellt und hier eine Emailprüfung geschrieben (EmailValidator.php)

    1. class EmailValidator extends \TYPO3\Extbase\Validation\Validator\AbstractValidator
    2. {
    3. public function isValid($value) {
    4. $this->errors=array();
    5. if(is_string($value)&&preg_match('....REGULÄRER AUSDRUCK.....', $value)) return TRUE;
    6. $this->addError('Keine richtige Emailadresse eingegeben (z.B. max.mustermann@mail.com', 13515839311);
    7. return FALSE;
    8. }
    9. }

    Habe ich noch irgendwo was vergessen. Ich bekomme keine Fehlermeldung sondern nur, dass das Formular erfolgreich abgespeichert und das obwohl gar keine Mailadresse angegeben wurde.


  • 1
  • rfehling rfehling
    Padawan
    0 x
    44 Beiträge
    3 Hilfreiche Beiträge
    19. 09. 2013, 09:22

    Damit die Validierung wirklich ohne Probleme funktioniert, sollten die @validate Geschichten auch in die CreateAction-Methode in dem Controller übernommen werden.

    Gruß,
    Ruven

  • 1