2012-01-13 9 views
0

一般的な検証メッセージはapplication/messages/validation.phpにあります。ユーザーモデルの「パスワード」フィールドを検証するときにカスタムメッセージが必要です。これは私の最初のコードです:Kohana 3.2 1つのモデルまたはフィールドのカスタム検証エラーメッセージ

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/user.phpからapplication/messages/validation.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希望$alias, $object, $directory, $translate);

$errors[$key] = $this->generate_errors(にあなたがAPPPATH /メッセージ/ validation.phpでこれを試みることができる、検証機能がある場合、これは

0

に役立ちます。

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 
); 
関連する問題