2016-02-13 1 views
0

Я попытался получить ввод с типом «число» для поддержки интерфейса HTML5.Symfony - изменить тип ввода HTML5 «текст» на «число» в классе формы

Моя форма класс:

class MyType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('a', NumberType::class); // i want <input type="number" ...> 
     $builder->add('b', EmailType::class); // <input type="email" ...> works 
     $builder->add('c', TextareaType::class); 
    } 
} 

NumberType не производит тип < ввода = "число"> тег в шаблоне ветку с {{форма (MyForm)}} как тип входного EmailType < = "электронная почта">.

Я не мог найти способ установить требуемое значение атрибута html. Настройки «attr» не меняют его.

Я использую Symfony 3.

кр Себастиан

ответ

1

Если вы хотите иметь тип = «число» на вашем html, который вы должны сделать, как говорит @tompte, но он не будет отображать какой-либо атрибут шага. Если вы хотите, чтобы сделать дополнительные атрибуты, которые вы должны добавить форму следующим образом:

$builder->add('a', IntegerType::class, array('scale' => 2, 'attr' => array('step' => 0.01))); 

Если читать исходный код для блока number_widget вы увидите этот комментарий:

{%- block number_widget -%} 
    {# type="number" doesn't work with floats #} 
    {%- set type = type|default('text') -%} 
    {{ block('form_widget_simple') }} 
{%- endblock number_widget -%} 

Так что это почему он не отображается как число при использовании класса NumberType.

+0

Не работает, если вы хотите десятичное число. –