我目前正在努力进行一些表单验证。我正在使用下面的类,它旨在成为一个流利的界面。
class Validator implements ValidatorInterface {
protected $_count_validators = 0;
protected $_validators;
protected $errorMsg;
public function __construct($errorMsg = '')
{
$this->errorMsg = $errorMsg;
}
public function addValidator(ValidatorInterface $validator)
{
$this->_count_validators++;
$this->_validators[] = $validator;
return $this;
}
public function validate($value)
{
foreach($this->_validators as $validator) {
if ($validator->validate($value) === false) {
return false;
}
}
return true;
}
public function getError()
{
return $this->errorMsg;
}
}
它实际上工作了 75% - 我可以像这样添加验证器:
$postalcodeValidator = new \Framework\Formular\Validator\Validator();
$validatePostalcode= $postalcodeValidator->addValidator(new \Framework\Formular\Validator\NotEmpty)
->addValidator(new \Framework\Formular\IsNumeric);
$cityValidator = new \Framework\Formular\Validator\Validator();
$validateCity = $lastnameValidator->addValidator(new \Framework\Formular\Validator\NotEmpty);
现在我可以写:
$result = $postalcodeValidator->validate('00000');
- or -
$result = $cityValidator->validate('London');
我会有一个布尔值。我的问题是,我需要让设置一些错误变得容易。在上面的例子中——如果我只是在类中添加了一个 getErrors() 函数——我必须为类的每个新实例获取错误。我想创建一个函数来获取所有错误。
你能帮我解决这个问题吗?
提前致谢,
登劳