Как получить тип ввода числа с помощью формы в Symfony2? - PullRequest
5 голосов
/ 08 марта 2012

Это мой код конструктора форм

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('phoneAlternative', 'number',array('max_length'=>15));
    $builder->add('emailPersonal', 'email');
    $builder->add('addressCurrent', 'textarea');
}

Это HTML-разметка

<input id="employee_phoneAlternative" type="text" maxlength="15" required="required" name="employee[phoneAlternative]" class="valid">

Любой, кто мне подскажет.почему тип ввода дает «текст», так как я дал число.при построении формы.как я получу тип ввода как «число» в symfony2, используя построитель форм.

Ответы [ 3 ]

19 голосов
/ 06 мая 2013

Вам необходимо использовать тип формы ' integer ' вместо ' number '.

типы числовых форм следует использовать для с плавающей точкой , для которых требуется ввод text.

Таким образом, правильная строка кода в вашем случае будет:

$builder->add('phoneAlternative', 'integer', array('max_length'=>15));
2 голосов
/ 27 апреля 2012

Это можно сделать, переопределив шаблон темы формы (http://symfony.com/doc/current/book/forms.html, раздел «Формирование темы»).В вашем примере, блок для создания это 'number_widget':

{% block number_widget %}
{% spaceless %}
    {% set type = type|default('number') %}
    {{ block('input') }}
{% endspaceless %}
{% endblock number_widget %}
1 голос
/ 21 февраля 2015

вы должны сделать это

public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('phoneAlternative', 'integer',array('max_length'=>15));
$builder->add('emailPersonal', 'email');
$builder->add('addressCurrent', 'textarea');
}

или вы можете создать свою форму в html.twig с помощью ввода

 phoneAlternative:   <input type="Number" required> 
...