Как пройти внешнюю проверку с помощью меток моделей и сообщений об ошибках? - PullRequest
2 голосов
/ 31 октября 2011

В Kohana 3.2 при внешней проверке при сохранении Model_User почему не отображается правильное сообщение?

У меня есть user.php в application/messages/models, который отлично читает и переводит для "внутреннего"msgstr "данные, в то время как _external.php находится в application/messages/models/user.

Когда _внешние данные недействительны, отображается сообщение об ошибке по умолчанию от Kohana, и, следовательно, неправильно переведено или даны правильные метки из Model_User.

Edit, с кодом:

// 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);
}

Итак, когда $extra переменные не соответствуют правилу, я хотел бы получить хорошие сообщения об ошибках от application/messages/models/user/_external.php, который выглядит следующим образом:

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

Также было бы неплохо, если бы: поле было выбрано из "меток" Model_User.

1 Ответ

2 голосов
/ 18 ноября 2011

Вам нужно поместить _external.php рядом с вашим user.php в каталог messages/models, а не в каталог messages/models/user. У меня была такая же проблема, у меня это сработало.

...