我在application/messages/validation.php
中有我的常规验证消息,当我验证用户模型的'密码'字段时,我需要自定义消息。这是我的初始代码:
try
{
ORM::factory('user', Auth::instance()->get_user())->update_user($values);
}
catch (ORM_Validation_Exception $e)
{
$errors = Arr::merge($errors, $e->errors(TRUE));
if (Arr::get($errors, '_external'))
{
$errors = Arr::merge($errors, Arr::get($errors, '_external'));
unset($errors['_external']);
}
}
我尝试了:$e->errors('')
,$e->errors()
,将application/messages/validation.php
复制到application/messages/user.php
,将'password' => array('regex' => 'message')
放在这些文件中,我尝试混合所有可能性这个。我阅读了异常类的源代码,但我无法理解什么是错的。根据{{3}}帖子,它可以做到,但对我来说没那么有效。
我很感激帮助。谢谢!
答案 0 :(得分:0)
我认为ORM_Validation_Exception->generate_errors()
中存在错误。您要做的事情应该像调用$e->errors('validation')
一样简单,消息来自application/validation/user.php
(它会附加ORM模型别名)。
我还没有报道,但我认为this bug report无论如何都会触及它。希望它得到修复。
在modules/orm/classes/kohana/orm/validation/exception.php
中,将第153行更改为$errors[$key] = $this->generate_errors(
$alias
, $object, $directory, $translate);
希望这有帮助
答案 1 :(得分:0)
如果有验证功能,可以在APPPATH / messages / validation.php中尝试。
return array(
'password' => 'your password text' // this way it will always be replaced
'Model_User::password' => 'your custom password message' // And here just for the Model_User
);