symfony2:尝试将type =“number”属性添加到表单字段

时间:2014-10-25 10:10:58

标签: symfony symfony-forms

我有这个领域,

 ->add('number', 'number', array(
'label' => false,
'attr' => array('class' => 'producto', 'type' => 'number')))

我希望添加type="number"属性,使用向下/向上的小箭头增加和减少内部数字,但我得到一个输入类型=" text"属性:

<input type="text" value="11" class="producto form-control" required="required" name="project_backendbundle_pedido[pedidoSubitems][0][number]" id="project_backendbundle_pedido_pedidoSubitems_0_number">

2 个答案:

答案 0 :(得分:7)

type属性是通过您选择的窗口小部件类型设置的。要获得type="number",您需要选择integer作为窗口小部件类型。令人困惑,我知道..

但是看看official symfony page。所以你的代码应该是这样的:

->add('number', 'integer', array(
    'label' => false,
    'attr'  => array('class' => 'producto'),
))

答案 1 :(得分:0)

要获得您需要的类型编号(对于symfony 2.8):

在表单构建器中使用以下参数:

->add('fixedCharge', 'number', array(
                    'required' => true,
                    'rounding_mode' => 0,
                    'precision' => 2,
                    'scale' => 7,
                    'attr' => array(
                        'min' => -90,
                        'max' => 90,
                        'step' => 0.01,
                    ),
                ))

在twig中明确定义为数字:

{{ form_widget(form.fixedCharge, { 'type':'number' }) }}

此外,对于忽略HTML5验证的浏览器,您还可以在实体字段上添加服务器端验证:

@Assert\Type(type="float", message="must be a numeric value")