php中的symfony 1.1 sfNumberValidator插件代码


symfony 1.1 sfNumberValidator plugin code in php

我在字段postalCode的validate/confirm.yml中进行了验证检查:

 postalCode:  
  required: yes
  required_msg: ENTER_VALID_POSTALCODE
  validators: numberValidator 
numberValidator:
  class: sfNumberValidator
  nan_error:    NOT_A_NUMBER_ERROR

出于某种原因,我想在操作文件中移动类sfNumberValidator的逻辑或相同功能。

class registerActions extends sfActions
{
    public function validateConfirm() {
            ....
            ...
        $postalCode = $this - > getRequestParameter('postalCode');
        if (postalCode != '') {
            //Do the same kind of validation like sfNumberValidator does 
        }
    }
....
}

您必须创建sfNumberValidator实例,然后调用execute方法。

类似这样的东西:

if ($postalCode != '') {
  $validator = new sfNumberValidator($this->getContext(), array(
           'nan_error' => 'Not a number',
           'min'       => 10000,
           'max'       => 99999
  ));
  $error = null;
  if(!$validator->execute($potalCode, $error)){
      //Here $error has the message you want to show the user
  }

}

PS:min和max只是一个建议,但您可能应该使用更明确的邮政编码情况