symfony2:正在尝试添加类型=";“数字”;表单字段的属性

symfony2:正在尝试添加类型=";“数字”;表单字段的属性,symfony,symfony-forms,Symfony,Symfony Forms,我有这个领域 ->add('number', 'number', array( 'label' => false, 'attr' => array('class' => 'producto', 'type' => 'number'))) 我希望添加一个type=“number”属性,用向下/向上的小箭头增加和减少里面的数字,但我得到了一个type=“text”属性的输入: <input type="text" value="11" class="produ

我有这个领域

 ->add('number', 'number', array(
'label' => false,
'attr' => array('class' => 'producto', 'type' => 'number')))
我希望添加一个
type=“number”
属性,用向下/向上的小箭头增加和减少里面的数字,但我得到了一个type=“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">

通过您选择的小部件类型设置
类型
属性。要获取
type=“number”
,您需要选择
integer
作为小部件类型。令人困惑,我知道

但是,请看一看。因此,您的代码应该如下所示:

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

要获得类型编号,您需要执行以下操作(对于symfony 2.8):

在form builder中,请使用以下参数:

->add('fixedCharge', 'number', array(
                    'required' => true,
                    'rounding_mode' => 0,
                    'precision' => 2,
                    'scale' => 7,
                    'attr' => array(
                        'min' => -90,
                        'max' => 90,
                        'step' => 0.01,
                    ),
                ))
在细枝中明确定义为数字:

{{ form_widget(form.fixedCharge, { 'type':'number' }) }}
此外,对于忽略HTML5验证的浏览器,还可以在实体字段上添加服务器端验证:

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

integer的问题在于,您实际上无法接收十进制数(例如:12,5),但如块“number\u widget”中的form\u div\u layout.html.twig所述,输入type=“number”不适用于浮点输入类型编号适用于浮点,但需要声明相应的
比例
属性才能用于表单字段。浏览器对
number
表单字段和
step
的支持不可靠,因此需要一个文本字段才能在所有浏览器中一致工作。