我正在使用Phalcon框架,我正在尝试制作自定义验证器:
<?php
use Phalcon\Validation\Validator,
Phalcon\Validation\ValidatorInterface,
Phalcon\Validation\Message;
class Currency extends Validator implements ValidatorInterface
{
/**
* Executes the validation
*
* @param Phalcon\Validation $validator
* @param string $attribute
* @return boolean
*/
public function validate($validator, $attribute)
{
$value = $validator->getValue($attribute);
if(! is_numeric($value))
{
$message = $this->getOption('message');
if(! $message){
$message = 'Not a valid currency.';
}
$validator->appendMessage(new Message($message, $attribute, 'Currency'));
return false;
}
return true;
}
}
尝试使用上面的验证器时出现此错误:
意外值类型:预期对象实现 Phalcon \ Mvc \ Model \ ValidatorInterface,类型为Currency的对象
我将验证器类放在/plugins/validators/Currency.php中并使用DI自动加载它。 有线索吗?
答案 0 :(得分:0)
这种验证器不能用于模型验证。 &#34; Phalcon \ Validation是一个独立的验证组件,用于验证任意数据集。此组件可用于对不属于模型或集合的数据对象实施验证规则。 &#34;
此处有更多信息:http://docs.phalconphp.com/en/latest/reference/validation.html#validators
对于模型验证器,您需要使用另一个接口。
info here:
http://docs.phalconphp.com/en/latest/reference/models.html#validating-data-integrity