symfony中的自定义验证器

时间:2011-07-14 13:58:01

标签: php symfony1 validation symfony-1.4

我想为Symfony 1.4创建自定义验证器,例如检查长度名称。我知道它存在,但我想拥有。

我创建/myapp/lib/validator/sfValidatorName.class.php

必须在那里:

class sfValidatorName extends sfValidatorBase
{

  protected function configure($options = array(),
                                $messages = array()) {

      $this->addMessage('invalid', 'Invalid name!');
  }

  protected function doClean($value) {

  }
}

如何添加我的功能,例如:

    if (count($letters) < 3) {
        return 'too small';
    } else if (count($letters) > 43) {
        return 'too long'; 
    } 

2 个答案:

答案 0 :(得分:2)

  1. 打开/lib/validator/sfValidatorString.class.php
  2. 在那之后为验证器建模。

答案 1 :(得分:1)

由于您的示例正是sfValidatorString的作用,为什么不去看看它的来源?基本上你只是用相关的错误代码抛出验证错误(例如,invalid,min_length,max_length,...)。

默认情况下,任何验证程序都有错误“无效”和“必需”,但您可以使用addMessage()添加自己的错误。

对于这个具体的例子,更聪明的选择是配置或扩展sfValidatorString。