Symfony2:如何呈现HTML5数字输入类型并接受表单中的浮点值?

SIN*_*ada 3 forms html5 numbers input symfony

我想使用symfony整数字段类型,因为它使用HTML5"数字"输入类型,更适合数字.

当我在控制器中创建表单时:

$form = $this->createFormBuilder($stuff)
 ->add('freqLivrLO', 'integer', array(
            'label' => 'Fréquence de livraison (nb fois/semaine)',
            'rounding_mode'=>null,
            'precision'=>2,
            'constraints' => array(
                new GreaterThan(array(
                    'value' => 0, 'message' => 'La fréquence de livraison doit être strictement positive')),
                new LessThanOrEqual(array(
                    'value' => 7, 'message' => 'La fréquence de livraison doit être inférieure à 7'))
            ),
            'attr' => array('step'=>'0.01',
                'min'=>'0',
                'max'=>'7'),
        ))
Run Code Online (Sandbox Code Playgroud)

它正确呈现一个数字字段:

<input id="form_freqLivrLO" name="form[freqLivrLO]" required="required" step="0.01" min="0" max="7" value="0.07" type="number">
Run Code Online (Sandbox Code Playgroud)

但是,每当我输入一个浮点值时,它都会舍入到下一个可用的整数.我该怎么办 ?

pro*_*fm2 6

从Adambean获取线索,您可以:

->add('lat', NumberType::class, array (
    'required' => true,
    'scale' => 7,
    'attr' => array(
       'min' => -90,
       'max' => 90,
       'step' => 0.0000001,
    ),
))
Run Code Online (Sandbox Code Playgroud)

在你的Twig模板中,你需要定义类型,在我的例子中,它看起来像:

{{ form_widget(edit_form.lat, { 'type':'number' }) }}
Run Code Online (Sandbox Code Playgroud)