Phalcon PHP自定义验证规则引发错误

时间:2014-08-04 08:13:11

标签: php validation phalcon

我正在使用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自动加载它。 有线索吗?

1 个答案:

答案 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