1

我制作了一个验证器,它接收一个类实例和一个函数名,然后执行它。

这对于通过数据库表映射器执行许多自定义验证很有用。

问题是我不能多次将此验证器添加到元素中,我需要这样做......

例子:

我有一个包含用户名和密码元素的登录表单。对于用户名,我需要通过此验证器验证它是否已存在于数据库中,如果存在,我需要验证所选帐户是否已激活...

我知道我可以只创建一个函数来接收两者的结果,但是,我的验证器应该只返回一个错误消息......

这是验证器的构造函数:

/**
 *$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 回答