クラスインスタンスと関数名を受け取って実行する 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 を変更して複数のメッセージを返し、それらをコンストラクターに渡す必要がありますか?