2012-01-13 80 views
0

我有我的一般验证消息application/messages/validation.php我需要一个自定义消息,当我验证我的用户模型的'密码'字段。这是我最初的代码:Kohana 3.2一个模型或字段的自定义验证错误消息

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.phpapplication/messages/user.php,把'password' => array('regex' => 'message')这些文件里面,我试着混合这一切多种可能性。我读了异常类的源代码,但我不明白是什么错。根据this后,它可以完成,但没有为我这样工作。 我很感激帮助。谢谢!

回答

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

希望这有助于

0

如果有,你可以在APPPATH /消息/ 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 
);