2012-01-13 85 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 
);