2014-09-12 5 views
0

Я использую Bootstrap3 и Symfony2.5Symfony2 формы виджетов класса

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

Я могу просто добавить его в классе FormType, как это:

'attr'=> array('class'=>'form-control') 

Но это означало бы, что я должен сделать это для каждого элемента.

Альтернатива переписывает все шаблоны по умолчанию, но это было бы излишним для просто добавления класса.

Есть ли способ добавить класс более удобным способом?

+1

вы должны использовать этот комплект [http://bootstrap.braincrafted.com/](http://bootstrap.braincrafted.com/), который поставляется со всей необходимой вам функцией – DonCallisto

+1

Хороший совет. Комплект для вас * много * для вас, и некоторые из них не подходят для моего приложения. Я сомневаюсь, что могу включить этот комплект. Я посмотрю, как пакет справляется с созданием форм в стиле начальной загрузки. Или вишневый выбор из этого или настройка моего существующего кода аналогичным образом. – DoppyNL

ответ

0

Если вы используете bootstrap, вы можете использовать тему формы для бутстрапа, поставляемого с symfony.

Либо путем настройки этой системы широко в вашем config.yml:

twig: 
    form_themes: [ 'bootstrap_3_layout.html.twig' ] 

См: http://symfony.com/blog/new-in-symfony-2-6-bootstrap-form-theme

Или установить его в шаблоне для одной формы в шаблоне страницы:

{{ form_theme form 'bootstrap_3_layout.html.twig' }} 

Если вы здесь, чтобы выяснить, как добавить свой собственный класс (или атрибут) к темам формы по умолчанию. Также посмотрите на шаблоны бутстрапа. Изменить html довольно просто.

Если макет начальной загрузки 3 по умолчанию, предоставленный symfony, вам не по душе, вы можете создать свой собственный и ссылку на этот шаблон. Посмотрите в представленном шаблоне bootstrap в symfony о том, как это сделать.

Поваренная книга также очень полезен: http://symfony.com/doc/current/cookbook/form/form_customization.html

Малый Sidenote: Бутстраповская тема из Symfony доступна только с 2.6, в то время как мой вопрос упоминается 2.5. Если вы все еще используете более раннюю версию Symfony у вас есть несколько вариантов:

  • Symfony обновления (рекомендуется)
  • копировать шаблоны начальной загрузки в свой собственный проект (возможно, вам необходимо изменить несколько битов, хотя)
  • Создайте свою тему и используйте ее.
Смежные вопросы