更改Symfony表单类型元素';s窗体组CSS类

更改Symfony表单类型元素';s窗体组CSS类,symfony,symfony4,symfony-forms,Symfony,Symfony4,Symfony Forms,简要地说:我想编辑我的表单元素父div类。在此代码中,不要将css类添加或编辑到我的目标div(即表单组),并且以下表单类型是另一种表单类型的元素。 我的表单类型如下所示: public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('id', IntegerType::class, [ 'empty_data' => '',

简要地说:我想编辑我的表单元素父div类。在此代码中,不要将css类添加或编辑到我的目标div(即表单组),并且以下表单类型是另一种表单类型的元素。

我的表单类型如下所示:

    public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('id', IntegerType::class, [
        'empty_data' => '',
        'label' => 'ID',
        'attr' => [
            'class' => 'col-sm-3'
        ],
    ]);
    $builder->add('companyName', TextType::class, [
        'empty_data' => '',
        'label' => 'Şirket Adı',
        'attr' => [
            'class' => 'col-sm-3'
        ],
    ]);
}
所以这个表单类型呈现在这个HTML中:

<div class="form-group  field-member_earning_filter"><label class="control-label"> </label>
<div id="form_filters_member" css="col-sm-11">
    <div class="form-group  field-integer"><label class="control-label"
                                                    for="form_filters_member_id">ID</label><input type="number"
                                                                                                  id="form_filters_member_id"
                                                                                                  name="form_filters[member][id]"
                                                                                                  class="form-control col-sm-3">
    </div>
    <div class="form-group  field-text"><label class="control-label" for="form_filters_member_companyName">Ticari
            Ünvan</label><input type="text" id="form_filters_member_companyName"
                                name="form_filters[member][companyName]" class="form-control col-sm-3"></div>

身份证件
蒂卡里
Ünvan

正如您所看到的,我想为每个元素添加的CSS类组被添加到表单控件元素中。但实际上我想这样做:

<div class="form-group col-sm-3 field-integer"><label class="control-label"
                                                    for="form_filters_member_id">ID</label><input type="number"
                                                                                                  id="form_filters_member_id"
                                                                                                  name="form_filters[member][id]"
                                                                                                  class="form-control">
ID
我试图在视图层(在细枝端)重构这个挑战,但实际上没有任何真正的块来编辑“表单组”部分。另外,它是另一个表单类型中的表单类型,因此块不会影响我的代码。我的意思是:

    {% block form_row %}
        <div class="form-group col-sm-3"> <--! but this form group actually my form type's form group -->
             {{ form_label(field) }}
             {{ form_errors(field) }}
             {{ form_widget(field) }}
        </div>
    {% endblock %}
{%block form_row%}

我找到了解决问题的办法。这是一点变通办法或黑客手段,但解决了我的问题:

public function buildForm(FormBuilderInterface $builder, array $options)
{
  $builder->add('id', IntegerType::class, [
    'empty_data' => '',
    'label' => 'ID',
    'block_prefix' => ' col-sm-3'
]);
  $builder->add('companyName', TextType::class, [
    'empty_data' => '',
    'label' => 'Şirket Adı',
    'block_prefix' => ' col-sm-3'
]);
}
此表单组的div仅影响
选项。正如您猜测的那样,
块前缀
是类的前缀,但只是添加了一个空格(
),那么它就解决了我的问题:)