Symfony2 / Twig - 为表单元素添加类

时间:2014-07-30 18:49:31

标签: php symfony twig

我刚刚开始了一个新的Symfony2项目,我使用generate:doctrine:crud来快速扩展一些视图,表单等。

生成的表单代码只是: {{ form(form) }}但包括通用的创建或删除按钮。我想知道如何为这些通用按钮添加一个类或以任何方式修改它们,因为它只包含在{{ form(form) }}中?

作为参考,我使用Twitter Bootstrap快速应用一些样式,所以我不想根据提交按钮更改css。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以在表单构建器类中指定CSS类,以避免使用html填充Twig模板,即使是单独呈现表单也是如此。

当您致电{{ form(form) }}时,您正在使用帮助程序来简化代码,因此您无需为每个字段调用form_widget,但这样做无法准确控制显示在模板中。要做到这一点,你必须指定将应用于该字段的类。

WhateverType.php文件的Forms文件夹中,您有表单构建器。那里你应该有:

   $builder
        ->add('text')
        ->add('whatever')

你必须添加这些类:

   $builder
        ->add('text', 'attr'=> array('class'=>'btn')
        ->add('whatever')

然后,当您的表单显示在模板中时,它将应用您在构建器中指定的类。

答案 1 :(得分:1)

在关注dmnptr's answer(将表单分成几部分)后,您可以通过以下方式将参数数组传递给每个form / form_row / form_label等:

{{ form(form, { 'attr': { 'class': 'your-css-class-1 your-css-class-2' } } ) }}

attr参数设置了项目的属性,因此上面会产生:

<form class="your-css-class-1 your-css-class-2" ...

答案 2 :(得分:0)

您必须手动渲染每个归档,并为TWIG中的元素添加必要的类。请阅读官方文档中的操作方法 - http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-hand