検証メッセージを使用する 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 ファイルを配置しましたが、どこにもないので、自分のフォルダー構造ではないと思います。