自定义电话验证器不工作symfony

时间:2011-09-01 02:42:34

标签: php validation symfony-1.4

我正在使用symfony 1.4学说。我有一个代码,可以在这里验证电话号码的代码:(基于这个网站“http://jasonswett.net/blog/how-to-validate-and-sanitize-a-phone-number-in-symfony/” )

我将它粘贴在lib文件夹中。

 apps/frontend/lib/myValidatorPhone.class.php
<?php

/**
 * myValidatorPhone validates a phone number.
 *
 * @author Jason Swett (http://jasonswett.net/how-to-validate-and-sanitize-a-phone-number-in-symfony/)
 */
class myValidatorPhone extends sfValidatorBase
{
  protected function doClean($value)
  {
    $clean = (string) $value;

    $phone_number_pattern = '/^(\((\d{3})\)|(\d{3}))\s*[-\.]?\s*(\d{3})\s*[-\.]?\s*(\d{4})$/';

    if (!$clean && $this->options['required'])
    {
      throw new sfValidatorError($this, 'required');
    }

    // If the value isn't a phone number, throw an error.
    if (!preg_match($phone_number_pattern, $clean))
    {
      throw new sfValidatorError($this, 'invalid', array('value' => $value));
    }

    // Take out anything that's not a number.
    $clean = preg_replace('/[^0-9]/', '', $clean);

    // Split the phone number into its three parts.
    $first_part = substr($clean, 0, 3);
    $second_part = substr($clean, 3, 3);
    $third_part = substr($clean, 6, 4);

    // Format the phone number.
    $clean = '('.$first_part.') '.$second_part.'-'.$third_part;

    return $clean;
  }
}

然后我在表单文件夹

上创建了这段代码
 lib/form/doctrine/reservation/reservationApplicationForm.class.php
$this->validatorSchema['telephone'] = new myValidatorPhone(array(
      'required' => false,
    ));

但是当我运行程序时,我收到错误:

  

致命错误:未找到“myValidatorPhone”类   C:\ WWW \项目\预订\ LIB \表格\原则\ reservationApplicationForm.class.php   在第36行

基于该网站,此代码适用于1.4,我现在正在使用它。但我不知道为什么会有致命的错误。

1 个答案:

答案 0 :(得分:5)

在你的lib文件夹中创建文件夹验证器,并在 lib / validator / myValidatorPhone.class.php

中输入验证器