3

フォーム要素のラベルを参照するエラーメッセージ内の変数を使用することは可能ですか?%hostname%(電子メールバリデーター内)などのカスタム変数をマップすることは可能であり、%value%も使用できますが、フォームラベルも必要です。

ZFコードベースでそれを見つけることができませんでしたが、ユースケースは、たとえば、Zend_Validate_NotEmptyが次のようなメッセージを返すことができる場合です。

"The field %label% is required and can't be empty"

それ以外の:

 "Value is required and can't be empty"
4

2 に答える 2

1

バリデーターをサブクラス化しないと不可能だと思います。Zend_Validateクラスは、一緒に使用することを意図したものではありませんZend_Form_Element。メッセージにを含める%label%と、両方のコンポーネント間の結合が導入されます。

考えられる解決策は、拡張してZend_Validate_NotEmpty(または使用している任意のバリデーターを) カスタムバリデーターを作成し、ラベルをコンストラクターに渡すことです。このようにして、インスタンス化するたびに適切なメッセージを作成できます。

編集:

上記の方法に従えば、独自の%label%「マジック変数」を定義して、クラスのメンバーにアタッチすることもできます。$_messageVariablesZend Framework ドキュメントの例 #2のメンバーを参照してください:バリデータの記述

それが役立つことを願っています...

于 2011-09-07T11:50:42.887 に答える
0

私はついにデコレータを使いました。dinopmi の解決策は可能ですが、常にラベルを注入する必要があります。フォーム要素のエラー デコレータは、%label% を実際のラベルに置き換えます。

于 2011-10-16T09:17:32.540 に答える