我有一个编辑表单,表单是通过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吗?
由于
答案 0 :(得分:15)
以下是构建表单时可以执行此操作的方法,
$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'} }) }}
然后,您可以在捆绑公共资源中添加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 %}
然后,您可以通过您的网站/目录访问您的公共资源。 最好的方法是创建针对您的捆绑公共资产的符号链接,然后执行
assets:install web/ --symlink
当您想彻底自定义特定表单字段呈现块(Twig)时,另一种有用的方法是定义新的form theme,这里是文档&gt; Form theming in Twig
答案 1 :(得分:0)
这可能会有所帮助:
$builder->add('patent_name', 'text', array('label' => 'Patent Name', 'attr' => array('class' => 'someclass')));
答案 2 :(得分:0)
如果您要在字段中添加类,则必须使用attr
特殊属性与构建表单的add
操作一起使用
$builder->add('field_name', 'yourType', array('attr' => array('class' => 'fieldClass')));
如果您想要链接样式表,则必须使用资产。
您可以在资产here
要处理您必须执行的资产:
assets:install
安装您的资源(我建议使用--symlink
选项来反映css更改,除非它们被缓存)link href="{{ asset('bundles/acmebundle/css/style.css') }}" type="text/css" rel="stylesheet">
(acmebundle
是你的包裹)答案 3 :(得分:0)
答案 4 :(得分:0)
您可以像这样为ChoiceType添加CSS样式:
->add('triage', DocumentType::class, [
'label' => 'Triage',
'required' => false,
'placeholder' => 'select',
'label_attr' => [
'class' => 'col-sm-2 control-label',
],
'choice_attr' => function($choice, $key, $value) {
return ['style' => 'background:' . $choice->getColorCode().'; color:white;'];
},
'class' => 'AppBundle:TriageMaster',
'choice_label' => 'triage',
])
在这里,我使用了选择的数据来选择CSS样式。