0

検証メッセージを使用する 3 つのモデルがあります。そのうちの 2 つは、_external メッセージを含むすべてのメッセージに対して完全に機能します。3 番目はカスタム _external メッセージを返しません。エラーを取得するフォルダー構造と方法は、各モデルで同じです。

フォルダ構造

messages\models\verify

エラーのキャッチ

catch (ORM_Validation_Exception $e) 
{   
    return $e->errors('models/verify');
}   

ビューに渡されたエラー

array(1) { ["_external"]=> array(1) { ["activation_hash"]=> string(33) "activation hash must not be empty" } }

出力外部エラー

<?= Arr::path($errors, '_external.activation_hash'); ?>

メッセージ\モデル\verify_external.php

return array(
   'activation_hash' => array(
        'not_empty' => 'The email fields did not match'
    ),
);

検証

$extra_rules = Validation::factory($values)
  ->rule('activation_hash', 'not_empty');
$email->check($extra_rules);

そこにすべてがあるはずです。繰り返しますが、3 つのモデル間ですべてがまったく同じであるため、タイプミスまたはバグであると想定しています。いずれにせよ、コードからすべてをここに貼り付けました。見逃したものがありますか? デバッグの試みで、検証フォルダーへのパスに沿ったすべてのディレクトリに _external.php ファイルを配置しましたが、どこにもないので、自分のフォルダー構造ではないと思います。

4

1 に答える 1

0

私の解決策は、検証メッセージを既存のメッセージ ファイルに含めることでした。上記の例の確認アクションの目的は、ユーザーのメール アドレスを確認することでした。外部検証メッセージを外部電子メール配列に追加したところ、意図したとおりに機能しました。

于 2013-02-20T01:52:02.083 に答える