Как пройти внешнюю проверку с помощью меток моделей и сообщений об ошибках?
В Kohana 3.2 прохождение внешней проверки на Model_User
при сохранении, почему не отображается правильное сообщение?
я имею user.php
в application/messages/models
который читает и переводит хорошо для "внутренних" данных, в то время как _external.php
проживает в application/messages/models/user
,
Когда _external data является недействительным, отображается сообщение об ошибке по умолчанию от Kohana, и, следовательно, неправильно переведены или даны правильные метки из Model_User
,
Изменить, с кодом:
// 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 ответ
Вам нужно поставить _external.php
рядом с вашим user.php
в messages/models
каталог, а не в messages/models/user
каталог. У меня была такая же проблема, у меня это сработало.