Validator: Fehlermeldung

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Validator: Fehlermeldung

Beitrag von ma2604121 » 22.08.2011, 22:23:30

Hallo,

vielleicht bin ich gerade (bzw. die letzten Stunden) betriebsblind...

Ich habe ein Formular:

Code: Alles auswählen

<@controller namespace="rl::biz" file="registerController" class="registerController" @> 
<h2>Registrieren</h2>
<core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<html:form name="register">
<label for="username">Benutzer-Name:</label>
<form:text name="username" id="username" maxlength="30"/><br/>
<label for="password">Passwort:</label>
<form:password name="password" id="password" maxlength="50" ref="password2"/><br/>
<label for="password2">Wiederholung:</label>
<form:password name="password2" id="password2" maxlength="50"/><br/>
<form:button name="create-user" value="Benutzer anlegen" />

<form:listener name="CheckUserListener" control="username" validator="CheckUser">
    <p class="info">Diesen Benutzer gibt es bereits!</p>
</form:listener>

<form:addvalidator
    namespace="rl::pres::validator"
    class="CheckUser"
    control="username"
    button="create-user"
    type="special"
/>
</html:form> 
Dazu den Validator (CheckUser.php):

Code: Alles auswählen

<?php
class CheckUser extends TextFieldValidator{

    public function validate($UserName){
    }
    
    public function  notify() {
    $this->notifyValidationListeners($this->__Control);
    $this->markControl($this->__Control);
    }
}
?>
Und ausgerechnet bei diesem erhalte ich die Fehlermeldung:

Code: Alles auswählen

Fatal error: Class 'TextFieldValidator' not found in /var/www/alpha/apps/rl/pres/validator/CheckUser.php on line 3 
Wieso??

Ich habe noch 3-4 andere Validatoren für andere Formulare, bei denen alles völlig reibungslos abläuft. Wieso erhalte ich ausgerechnet hier die Meldung, dass die Klasse TextFieldValidator nicht gefunden wird??


Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Validator: Fehlermeldung

Beitrag von ma2604121 » 22.08.2011, 22:35:41

Tatsache!

Aber wieso geht es z.B. bei diesem Validator (gekürzt) ohne diesen Import:

Code: Alles auswählen

<?php
import('rl::data', 'TrailsMapper');

class DoubleEntry extends TextFieldValidator{
    public function validate($input) {
    }

    public function  notify() {
    $this->notifyValidationListeners($this->__Control);
    $this->markControl($this->__Control);
    }

    private function &getMapper(){
    return $this->getServiceObject('rl::data', 'TrailsMapper');
    }
}
?>
Das verstehe ich nicht. Dieser Validator arbeitet problemlos und erfüllt seine Aufgabe ohne Fehlermeldung.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Validator: Fehlermeldung

Beitrag von Screeze » 22.08.2011, 22:49:15

Vermutlich benutzt du im Formular, in welchem du auch diesen Validator verwendest, zusätzlich den TextLengthValidator irgendwo, sodass dieser bereits eingebunden wurde zufällig?

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Validator: Fehlermeldung

Beitrag von ma2604121 » 22.08.2011, 22:52:47

Wenn sich einer auskennt, dann Du...!! ;)

So ist es: Der TextLengthValidator wird verwendet.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Validator: Fehlermeldung

Beitrag von Screeze » 22.08.2011, 22:55:08

Wenn sich einer auskennt, dann Du...!! ;)
In diesem Fall konnte ich einfach kombinieren ;) Die Meldung tritt immer dann auf wenn in PHP eine Klassendefinition fehlt, wenn es einmal geht und ein anderes mal nicht, muss bei dem wo es geht zwangsweise irgendwo die Klasse eingebunden worden sein, da es nicht im Validator selbst passiert ist, war die einzig logische Schlussfolgerung, dass es eben bereits im Formular passierte ;)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste