私はZend Framework 1.62を使用しています(ZF1.62をサポートするのに十分なhgihのPHPバージョンを持っていないRed Hatインスタンスに完成品を配備しています)。 )。Zend_Form_Element_Selectを使用している場合、InArrayバリデータのカスタムエラーメッセージにアクセスします。
Zend Formを使用してフォームを作成する際に、select要素を追加し、複数のオプションを追加します。 Zend Formをオブジェクト内の検証レイヤーとして使用し、オブジェクト値を渡し、isValidメソッドを使用してすべての値が通常のパラメーター内にあるかどうかを判断します。
Zend_Form_Element_Selectは、私が追加したマルチ選択オプションの1つ以外の値が入力された場合、正しく表示され、正しく表示されます。
問題は、ある時点でフォームを表示したいときに、ZFによって自動的に追加された事前登録済みの 'InArray'バリデータによって作成されたエラーメッセージを編集できなくなります。私はこの動作を無効にすることができます知っているが、それは離れてエラーメッセージから大きく動作します。私は以下を試しました:
$this->getElement('country')->getValidator('InArray')->setMessage('The country is not in the approved lists of countries');
// Doesn't work at all.
$this->getElement('country')->setErrorMessage('The country is not in the approved lists of countries');
//エラーメッセージの細かい制御を可能にしません。
誰もが考えている?
ベン
しかし、このインスタンスでは、バリデータはバックグラウンドで設定されています。マニュアルから: デフォルトでは、この要素は登録されたオプションの配列キーに対して検証するInArrayバリデーターを登録します。この動作を無効にするには、setRegisterInArrayValidator(false)を呼び出すか、registerInArrayValidator構成キーにfalse値を渡します。 私の質問は、この特定のバリデータエラーメッセージにアクセスすることに関連しています。 あなたのお返事ありがとうございます、それ以上の洞察? Ben –