在symfony2中使用整数作为字段类型时,不显示文本框

时间:2015-05-31 17:33:35

标签: symfony

我在表单类型为Symfony2的字段中使用整数类型。我的代码如下:

$builder->add('phoneNumber', 'integer',array(
                'required'      => true,
                'constraints' => array(
                     'pattern' => '/^[0-9]\d*$/',
                      new Length(array(
                         'min'   => 10,
                         'max'   => 20
                               ))
         ))); 

虽然电话号码字段已经过验证,但会显示uparrow和downarrow,如果我点击它,我会从-1而不是文本框中获取数字。如果我将数字作为字段类型,则会调度文本框,但不验证该字段。如果有人能帮我解决这个问题,我将不胜感激。提前致谢。

2 个答案:

答案 0 :(得分:0)

integer字段不经常使用(仅适用于文字整数,即使不是总是如此)。对于电话号码,您肯定需要text字段。

<强>更新

use Symfony\Component\Validator\Constraints\Regex;
use Symfony\Component\Validator\Constraints\Length;

$builder->add('phoneNumber', 'text', array(
    'required' => true,
    'constraints' => array(
        new Regex(array(
            'pattern' => '/^[0-9]*$/'
        )) ,
        new Length(array(
            'min' => 10,
            'max' => 20
        ))
    )
));

@ Rufinus的回答可能是更好的选择。

答案 1 :(得分:0)