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 に答える