数据变换器和长度检查

时间:2013-07-04 16:04:33

标签: symfony symfony-2.3

我在下面使用此代码来转换555 555 555555555555之间的空格的电话号码。此外,我想检查号码是否有9位数。

$form = $builder
    ->add('Nombre', 'text')
    ->add('Email', 'text')
    ->getForm();

$builder->add($builder->create('telefono', 'text', array(
    'constraints' => new Assert\Length(array('min'=> 9, 'max' => 9, 'exactMessage' => 'The telephone number must have 9 digits')))
        ->addModelTransformer($transformer));

$form = $builder->getForm();

问题:我收到错误消息"电话号码必须有9位数字"即使它有9位数字。

这里有我的转换方法:

   public function transform($cadena)
    {
        $cadena = preg_replace('/\s+/', '', $cadena);

        return $cadena;
    }

    public function reverseTransform($cadena)
    {
        return $cadena;

    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

将此作为约束

new Assert\Regex(pattern="/^\d{9}$/", message="exactMessage")