Hi Lukas,

eine abstrakte Klasse kann Methoden-Köpfe enthalten, die von den konkreten Klassen implementiert sein müssen. Die AbstractValidator Klasse selbst scheint keine abstrakten Methoden zu haben. Aber dafür die ExtbaseAbstractValidator, von der sie ableitet:

        abstract protected function isValid($value);

Die musst du implementieren und zwar als

protected function isValid($value) {
  // Hier der Check rein, was der Wert sein muss, um valide zu sein,
  // z.B. eine Prüfung, ob der Wert "Haus" entspricht
  return $value === 'Haus';
}

Eventuell musst du noch checken, was ggf. das Interface, das ExtbaseAbstractValidator implementiert noch an Methoden verlanget, die noch nicht da sind.

Viele Grüße,

Dirk


Am 04.08.2015 um 15:14 schrieb Lukas H:
Hi Dirk,

eine sehr gute Idee, danke für deine Antwort. Ich habe jetzt folgendes
ausprobiert:

class CustomValidator extends AbstractValidator
-> Fatal error: Class
'MeinName\meine_extension\Domain\Validator\AbstractValidator' not found
(macht ja auch Sinn, schließlich habe ich keinen AbstractValidator in
meiner Extension)

class CustomValidator extends
\In2Code\powermail\Domain\Validator\AbstractValidator
-> Fatal error: Class
MeinName\meine_extension\Domain\Validator\CustomValidator contains 1
abstract method and must therefore be declared abstract or implement the
remaining methods
(TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator::isValid)
(verstehe ich nicht)

class CustomValidator extends
\TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator
-> Gleicher Fehler wie vorher

class CustomValidator extends
\In2Code\powermail\Domain\Validator\CustomValidator
-> Formular wird ohne Fehler abgeschickt, obwohl die Antwort false ist.

Der richtige Ansatz scheint es mir auf jeden Fall zu sein, aber
irgendwas mache ich noch falsch. Ich hoffe dir fällt etwas ein. Vielen
Dank für deine Hilfe!

Grüße
Lukas

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an