1

クラスインスタンスと関数名を受け取って実行する Validator を作成しました。

これは、データベース テーブル マッパーを介して多くのカスタム検証を実行する場合に役立ちます。

問題は、このバリデーターを Element に複数回追加することができず、それを行う必要があることです...

例:

ユーザー名とパスワードの要素を持つログインフォームがあります。ユーザー名については、このバリデータがデータベースに既に存在するかどうかを確認する必要があり、存在する場合は、選択したアカウントがアクティブ化されているかどうかを確認する必要があります...

両方の結果を受け取る関数を 1 つだけ作成できることはわかっていますが、Validator は 1 つのエラー メッセージのみを返す必要があります...

Validator のコンストラクタは次のとおりです。

/**
 *$class is a class instance
 *$function is the function name to execute in the class
 *$invalidReturns specifies when the validator should return the error message (default is when the function returns null, false or empty string)
 *$tokens are used as parameters of the function to execute
*/
public function __construct($class, $function, $invalidReturns=null, $tokens=null)
{
    $this->class = $class;
    $this->function = $function;
    $this->tokens = $tokens;
    $this->returns = $invalidReturns;
}

どうすればこの問題を解決できますか? PHPで動的な名前のクラスを作成する方法はありますか? Zend の要素に同じクラス Validator を追加する方法はありますか、または Valitor を変更して複数のメッセージを返し、それらをコンストラクターに渡す必要がありますか?

4

1 に答える 1

0

コメントで Kees Schepers によって提供されたソリューションは機能するはずですが、独自の「Zend_Validate_Callback」を行ったので、複数のメッセージの定義を許可するように動作方法を変更できました。

今ではうまく機能しています=)

とにかく、Kees Schepersに感謝します。次回は、もっと多くの作業を行う代わりに、Zend_Validate_Callback を使用します x)。

于 2011-11-10T22:44:37.067 に答える