我有一个编辑表单,该表单是通过symfony2表单类型制成的。我检查了文档,但找不到将CSS添加到表单的任何选项。表单正确显示了数据,一切都很好,我想做的就是向每个字段添加样式。
我的编辑类型是
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('id', 'hidden')
->add('patent_name', 'text', array('label' => 'Patent Name'))
->add('description', 'textarea', array('label' => 'Description', 'required' => false))
->add('appln_auth','text', array('label' => 'Application Authorization'))
;
}
任何人都有想法我可以添加CSS吗?
谢谢
最佳答案
这是构建表单时可以采用的方法,
$builder->add('field_name', 'text', array('label' => 'Field Label', 'attr' => array('class' => 'fieldClass')));
您也可以在渲染表单字段时进行操作,看看Twig template form function reference
{{ form_label(form.field, 'label', { 'attr': {'class': 'foo'} }) }}
{{ form_widget(form.field, { 'attr': {'class': 'bar'} }) }}
然后,您可以在 bundle 包的公共(public)资产中添加一个CSS文件,并使用以下命令在模板中调用该文件:
{% block stylesheets %}
{% parent() %} {# if you want to keep base template's stylesheets #}
<link href="{{ asset('bundle/myBundle/css/stylesheet.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}
然后,您可以通过Web /目录访问公共(public)资产。
最好的方法是创建针对 bundle 包公共(public)资产的符号链接(symbolic link),然后执行
assets:install web/ --symlink
要彻底自定义特定表单字段呈现块(Twig)时,另一种有用的方法是定义一个新的form theme,这里是文档> Form theming in Twig。