2 Stimmen

Yii benutzerdefinierte Validierungsregel wird nicht bei validate() aufgerufen

Wenn sich ein Benutzer für meine Anwendung registriert, werden die folgenden Validierungsregeln vor dem Absenden aufgerufen:

public function rules()
{   
    return array(
        array('email, firstName, lastName, password, passwordConfirm, telephone', 'required'),
        array('club, email, firstName, lastName, level, password, telephone', 'length', 'max'=>45),
        array('passwordConfirm', 'compare', 'compareAttribute'=>'password', 'on'=>'register'),
        array('email', 'isUniqueEmailAddress'),
    );  
}

Die ersten drei Validierungsregeln werden erfolgreich abgeschlossen, die vierte (eine benutzerdefinierte Validierungsmethode) jedoch nicht. Sie sollte die Funktion "isUniqueEmailAddress" aufrufen und das Folgende ausführen:

/*
* Returns true if there doesn't exist a user in the database with the submitted email
*/
public function isUniqueEmailAddress($attribute, $params)
{
    //if (User::model()->find('email=:email', array(':email'=>$this->email)) !== null)
    //{
        $this->addError('email', 'Email account already exists');
    //}
}

Wie Sie sehen können, habe ich sogar alle Logik auskommentiert, um einfach sicherzustellen, dass ein Validierungsfehler an das Registrierungsformular zurückgeschickt wird, aber keine Fehler an validation() zurückgegeben werden. Ich habe gelesen Yii's Dokumentation und habe die Foren durchforstet, kann aber nicht verstehen, warum meine benutzerdefinierte Validierungsmethode nicht aufgerufen wird?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X