2

標準のFormErrorsMyNameSpace_View_Helper_FormErrorsクラスを拡張し、ErrorMessage 自体の HTML を設定するクラスがあります。

エラーがスローされた要素の名前に基づいて、エラー メッセージ コンテナーに ID を指定する必要があります。

<ul id='errormsg_$ELEMENTNAME'>

要素への「リンク」がないようView_Helper_FormErrorsです。エラーをスローする要素の名前またはオブジェクトを取得する方法はありますか?

4

2 に答える 2

1

Zend_Form_Decorator_Error を上書きして、要素をビュー ヘルパーに渡す必要もあります。

Zend_Form_Decorator_Error の 60 行目を参照してください。

$errors    = $view->formErrors($errors, $this->getOptions());

に変わります:

$errors    = $view->formErrors($errors, $this->getOptions(), $this->getElement());

@venimusへのタンク、彼の答えがなければ、私はデコレータを見ていなかったでしょう:-)

于 2011-06-15T12:06:30.800 に答える
1

あなたはおそらく Errorsデコレータについて話しているでしょう。ただし、フォームのすべてのエラーをレンダリングする追加の FormErrors デコレーターがあります (単一の要素ではありません)。

要素デコレーターでは、次の方法で要素にアクセスできます$this->getElement()

要素ViewScriptsでは、次の方法で要素にアクセスできます<? $this->element ?>

于 2011-06-15T10:54:16.540 に答える