0

我在下面有这个代码来转换一个电话号码之间的555 555 555空格555555555。此外,我想检查该号码是否有 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;

    }
}

任何的想法?

4

1 回答 1

2

试试这个作为约束

new Assert\Regex(pattern="/^\d{9}$/", message="exactMessage")
于 2013-07-04T17:23:29.137 回答