Подтвердить что ты не робот

Как установить атрибут класса для ввода формы Symfony2

Как установить атрибут HTML class в форму <input> с помощью FormBuilder в Symfony2?

Что-то вроде этого:

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array(
          'class' => 'calendar'
      )
 ))

 {{ form_widget(form.birthdate) }}

Мне нужно это поле input с атрибутом class, установленным в календарь

4b9b3361

Ответ 2

Вы можете сделать это с помощью FormBuilder. Добавьте это в массив в FormBuilder:

'attr'=> array('class'=>'span2')

Ответ 3

Ответ Acyra приводит правильный путь, если вы хотите установить атрибуты внутри контроллера, но имеет много неточностей.

Да, вы можете сделать это непосредственно с помощью FormBuilder с помощью атрибута attr (здесь представлен здесь для версии 2.1 и здесь для версии 2.0) в массив параметров следующим образом:

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array('class'=>'calendar')
 ))

Неверно, что "функциональность сломана". Он работает очень хорошо!

Неверно, что Symfony2 применяет атрибут HTML class как к метке, так и к входу (по крайней мере, из версии 2.1).

Кроме того, поскольку атрибут attr является самим массивом, вы можете передать любой атрибут HTML, который вы хотите отобразить для этого поля. Это очень полезно, если вы хотите передать атрибуты HTML5 data-.

Ответ 4

{{ form_widget(form.content, { 'attr': {'class': 'tinyMCE', 'data-theme': 'advanced'} })  }}

Ответ 5

Вот так:

{{ form_widget(form.description, { 'attr': {'class': 'form-control', 'rows': '5', 'style': 'resize:none;'} }) }}

Ответ 6

Вы можете добавить его в параметры вашего класса формы:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'AppBundle\Entity\MyEntity',
        'attr' => array(
            'class' => 'form-horizontal'
        )
    ));
}

Ответ 7

Отображает HTML-виджет заданного поля. Если вы примените это ко всей форме или коллекции полей, каждая строка базовой строки будет отображаться.

{# render a field row, but display a label with text "foo" #} {{ form_row(form.name, {'label': 'foo'}) }}

Второй аргумент form_row() - это массив переменных. Шаблоны, представленные в Symfony, позволяют только переопределить ярлык, как показано в приведенном выше примере.

Подробнее о переменных переменных см. "Дополнительные сведения о переменных формы".