Symfony2表单小部件类

时间:2014-09-12 08:43:03

标签: forms symfony

我正在使用Bootstrap3和Symfony2.5

我需要在表单元素中添加一个html类,以便为input / select / textarea元素应用bootstrap设计。

我可以简单地将它添加到FormType类中,如下所示:

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

但这意味着我必须为每一个元素做到这一点。

替代方案是覆盖所有默认的twig-templates,但仅仅添加一个类就太过分了。

有没有办法以更方便的方式添加课程?

1 个答案:

答案 0 :(得分:0)

如果使用bootstrap,您可以使用symfony提供的bootstrap表单主题。

通过在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' }}

如果您在这里想弄清楚如何将自己的类(或属性)添加到默认表单主题。另请参阅bootstrap模板。更改html非常简单。

如果symfony提供的默认bootstrap 3布局不符合您的喜好,您可以创建自己的布局并链接到该模板。 看看symfony中提供的bootstrap模板,了解如何做到这一点。

食谱也非常有帮助: http://symfony.com/doc/current/cookbook/form/form_customization.html

小旁注:symfony的bootstrap主题仅在2.6之后可用,而我的问题提到了2.5。如果您仍在运行早期版本的symfony,您有几个选择:

  • 升级symfony(强烈推荐)
  • 将引导程序模板复制到您自己的项目中(您可能需要更改几位)
  • 创建自己的主题并使用该主题。