更改Symfony表单类型元素';s窗体组CSS类
简要地说:我想编辑我的表单元素父div类。在此代码中,不要将css类添加或编辑到我的目标div(即表单组),并且以下表单类型是另一种表单类型的元素。 我的表单类型如下所示:更改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' => '',
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仅影响块
选项。正如您猜测的那样,块前缀
是类的前缀,但只是添加了一个空格(
),那么它就解决了我的问题:)