我刚刚开始了一个新的Symfony2项目,我使用generate:doctrine:crud
来快速扩展一些视图,表单等。
生成的表单代码只是:
{{ form(form) }}
但包括通用的创建或删除按钮。我想知道如何为这些通用按钮添加一个类或以任何方式修改它们,因为它只包含在{{ form(form) }}
中?
作为参考,我使用Twitter Bootstrap快速应用一些样式,所以我不想根据提交按钮更改css。
谢谢!
答案 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