2 Stimmen

Wie kann die externe Validierung durch Modellbeschriftungen und Fehlermeldungen erfolgen?

In Kohana 3.2 wird die externe Validierung auf Model_User Warum wird beim Speichern nicht die richtige Meldung angezeigt?

Ich habe user.php en application/messages/models das die "internen" Daten gut liest und übersetzt, während _external.php wohnt in application/messages/models/user .

Wenn _externe Daten ungültig sind, wird die Standard-Fehlermeldung von Kohana angezeigt und somit nicht korrekt übersetzt oder mit den richtigen Bezeichnungen von Model_User .

Bearbeiten, mit Code:

// We have $_POST, register a new user
$user = ORM::factory('user');
/*
 *    Here a bunch of variables are set
 */
$extra = Validation::factory($_POST)->
        rule('email', 'email')-> // I run this check, because in my Model_User, email is filtered through Encrypt
        rule('name', 'not_empty'); // Same goes for name

try {
    $user->save($extra);
} catch (ORM_Validation_Exception $e) {
    $this->template->errors = $e->errors('models', true);
}

Also, wenn $extra Variablen nicht mit der Regel übereinstimmen, würde ich gerne nette Fehlermeldungen von application/messages/models/user/_external.php die wie folgt aussieht:

return array(
    'email' => array(
            'email'         => ':field must be a valid email address',
        ),
    'name' => array(
            'not_empty'     => ':field must not be empty',
        ),
);

Außerdem wäre es schön, wenn :field aus Model_User "labels" geholt werden würde.

2voto

N0rbee Punkte 36

Sie müssen die _external.php neben Ihrem user.php im messages/models Verzeichnis, nicht im messages/models/user Verzeichnis. Ich hatte das gleiche Problem, bei mir hat es funktioniert.

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