我创建了一个自定义验证器,但是当我想使用它时,它似乎永远不会被执行!
验证者:
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(),
答案 0 :(得分:0)
你需要覆盖sfValidatorBase :: doClean方法,而不是一些不存在的execute方法,并抛出返回true / false的异常intead。看看任何验证器类,例如sfValidatorString。但是在你的情况下,我只需使用sfValidatorChoice选择
public function configure()
{
'url' => new sfValidatorChoice(array('choices' => array(
'your.website.url',
)));
}