css – Symfony2 – FormBuilder – 添加一个类到字段和输入

前端之家收集整理的这篇文章主要介绍了css – Symfony2 – FormBuilder – 添加一个类到字段和输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在symfony2内的某些输入或标签字段中添加一个类。

我可以在Twig中以我的形式做这样的事情:

<div class="row">
    {{ form_label(form.subject) }}
    {{ form_widget(form.subject,{ 'attr': {'class': 'c4'} }) }}
</div>

哪个工作正常但是我必须为每个表单设置模板。我必须把它分解成尽可能小的输出级别。我其实是想用:

{{ form_widget(form) }}

所以,我在想,我如何在以下地方添加一个css类:

class SystemNotificationType extends AbstractType {
    public function buildForm(FormBuilder $builder,array $options) {
        $builder    ->add('subject','text',array( 'label'  => 'Subject' ) )
–

我认为这可能更有用,因为我只需要在一个地方进行更改。

那么怎么可能这样做,或者也许我在想错误的方式。

任何帮助都会很棒,

非常感谢,
菲利普

解决方法

一个字段的类是您的应用程序的表示层的一部分,因此最好为您的表单创建一个twig主题

在资源/视图/表单中创建一个文件fields.html.twig,并定义如何形成表单行,例如:

{% block field_row %}
<div class="row">
    {{ form_errors(form) }}
    {{ form_label(form) }}
    {{ form_widget(form,{ 'attr': {'class': 'c4'} }) }}
</div>
{% endblock field_row %}

如果要仅自定义某个字段,例如formName格式的fieldName,则自定义行:

{% block _formName_fieldName_row %}
<div class="row">
    {{ form_label(form) }}
    {{ form_errors(form) }}
    {{ form_widget(form,{ 'attr': {'class': 'c4'} }) }}
</div>
{% endblock %}

编辑:仅定制字段:

{% block _formName_fieldName_widget %}
    {% set type = type|default('text') %}
    <input type="{{ type }}" {{ block('widget_attributes') }} value="{{ value }}" class="c4" />
{% endblock %}

然后在所有的表单模板你想要它使用这个主题添加

{% form_theme form 'MyBundle:Form:fields.html.twig' %}

这在the cookbook年深入解释

猜你在找的CSS相关文章