0

addErrorMessage()を使用すると、他のすべての検証エラーが上書きされるようです。

たとえば、カスタムの電話要素を作成しました。また、カスタムビジネスルールをチェックするカスタム検証クラスも作成しました。カスタムビジネスルールを満たしていない場合、My_Validate_BusinessPhoneからのエラーメッセージが出力されることを期待していました。ただし、addErrorMessage()で設定されたメッセージを常に出力します。これは正常な動作ですか?エラーメッセージを連鎖させる方法はありますか?

$phone = new My_Form_Element_Phone( 'phone' );   
$phone->setRequired( TRUE )
    ->setAttrib( 'id', 'phone' )
    ->addErrorMessage( 'Please provide a valid phone number' )
    ->addValidator( new My_Validate_BusinessPhone );

よろしくお願いします。

4

1 に答える 1

0

メッセージをバリデーターではなくフォーム要素に設定しているため、メッセージは上書きされます。これがどのように機能するかです。まず、フォーム要素を取得します。あなたの場合は、それを使用してください。次に、名前でバリデーターを取得し(ここでは、正確にどのように呼び出されているかわかりません。たとえば、「notEmpty」の場合があります)、3番目に、このバリデーターのメッセージを追加します。

$phone->getValidator('yourValidatorsName')->setMessage('Please provide a valid phone number');

私は自分のスクリプトでこれをテストしたばかりですが、うまくいくことを願っています;-)

于 2012-08-09T07:52:49.950 に答える