自定义验证程序,在表单中使用时不执行

时间:2011-09-12 08:04:38

标签: symfony1 validation symfony-1.4

我创建了一个自定义验证器,但是当我想使用它时,它似乎永远不会被执行!

验证者:

class sfTestUrlValidator extends sfValidatorUrl {

    public function initialize($context, $parameters = null) {

        // Initialize parent
        parent::initialize($context);
    }

    public function execute(&$value, &$error) {


        if($value == "http://www.librosweb.es/")
        {
            //$error = "noooooooooooooo";
            return true;
        }

        else            return false;

    }

}

在表单的configure方法中,我喜欢这样:

public function configure() { 
 .....
....
 'url' => new sfTestUrlValidator(),  

1 个答案:

答案 0 :(得分:0)

你需要覆盖sfValidatorBase :: doClean方法,而不是一些不存在的execute方法,并抛出返回true / false的异常intead。看看任何验证器类,例如sfValidatorString。但是在你的情况下,我只需使用sfValidatorChoice选择

public function configure() 
{ 
 'url' => new sfValidatorChoice(array('choices' => array(
   'your.website.url',
 )));
}