首页 > 解决方案 > 在 ChoiceType 中插入“占位符”的正确位置是什么?

问题描述

我正在使用带有 Bootstrap 4 的 Symfony 5.2,并且我正在设计一个包含 ChoiceType 字段的表单。我需要一个占位符,例如“选择一个选项”。我尝试了不同的选择,但没有一个有效。我的文件 ComisionNewFormType.php:

  ->add('turno', ChoiceType::class, [
    'label' => 'Turno:',
    'attr' => [
        'class' => 'form-control',
        'placeholder' => '-Seleccione un turno',
    ],
    'choices' => [
    'Mañana' => 'Mañana' ,
    'Tarde' => 'Tarde',
    'Noche' => 'Noche' ,
    'Desconocido' =>'Desconocido' ,
     ],      
])   

我的树枝模板是:

 <div class="col">
    Intensidad:<font color="red"> {{ form_errors(form.turno)}}</font>
    {{ form_widget(form.turno, {'attr': {'placeholder': '-Seleccione un turno'}}) }}  
 </div> 

然而,结果看起来像这样,没有“占位符”:

在此处输入图像描述

Firefox 中的源代码如下所示:

 <div class="col-sm-2"> 
        Turno:
<select id="comision_new_form_turno" name="comision_new_form[turno]" class="form-control form-control">
<option value="Mañana">Mañana</option>
<option value="Tarde">Tarde</option>
<option value="Noche">Noche</option>
<option value="Desconocido">Desconocido</option>
</select>            
</div>

占位符不出现。

我应该如何使占位符在上述字段的表单中可见?

标签: symfonybootstrap-4twigsymfony-forms

解决方案


正如文档所说,您必须使用ChoiceType选项中的占位符(https://symfony.com/doc/current/reference/forms/types/choice.html#placeholder

->add('turno', ChoiceType::class, [
    'label' => 'Turno:',
    'placeholder' => '-Seleccione un turno',
    'attr' => [
        'class' => 'form-control',
     ],
    'choices' => [
    'Mañana' => 'Mañana' ,
    'Tarde' => 'Tarde',
    'Noche' => 'Noche' ,
    'Desconocido' =>'Desconocido' ,
     ],      
])   

推荐阅读