更改Symfony表单类型元素的表单组CSS类

简短:我想编辑我的表单元素父div类。在此代码中,请勿在目标div(即表单组)中添加或编辑css类,并且跟随表单类型是另一个表单类型的元素。

我的表单类型如下:

    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,'label' => 'Şirket Adı',]);
}

因此,此表单类型在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>

如您所见,我要为每个元素组添加的CSS类已添加到form-control元素中。但实际上我想这样做:

<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">

我试图在视图层(位于细枝一侧)重构这个挑战,但实际上没有任何实际的块来编辑“表单组”部分。另外,由于该原因,它是另一种表单类型中的一种表单类型,因此该块不会影响我的代码。我的意思是:

    {% 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 %}

你有什么主意吗?

cywmm 回答:更改Symfony表单类型元素的表单组CSS类

我找到了解决问题的方法。有点解决方法或黑客手段,但解决了我的问题:

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,'label' => 'Şirket Adı','block_prefix' => ' col-sm-3'
]);
}

此表单组的div仅受block_选项的影响。正如您猜到的那样,block_prefix是类的前缀,但是仅添加空格()即可解决我的问题:)

本文链接:https://www.f2er.com/3153997.html

大家都在问