在 ChoiceType 中插入 'placeholder' 的正确位置是什么?
What is the correct place to insert 'placeholder' in ChoiceType?
我正在使用带有 Bootstrap 4 的 Symfony 5.2,我正在设计一个包含 ChoiceType 字段的表单。我需要一个占位符来显示,例如“Select 一个选项”。我尝试了不同的选项,其中 none 有效。我的档案 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' ,
],
])
我的 Twig 模板是:
<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>
占位符没有出现。
我应该如何使占位符在上述字段的表单中可见?
正如文档所说,您必须使用 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' ,
],
])
应用“jona303”提出的解决方案,完整代码如下所示:
文件 ComisionNewFormType.php:
->add('turno', ChoiceType::class, [
'label' => 'Turno:',
'placeholder' => '-Seleccione',
'choices' => [
'Mañana' => 'Mañana' ,
'Tarde' => 'Tarde',
'Noche' => 'Noche' ,
'Desconocido' =>'Desconocido' ,
],
])
Twig 模板是:
<div class="col-sm-2">
Turno:<font color="red"> {{ form_errors(form.turno)}}</font>
{{ form_widget(form.turno) }}
</div>
结果如下所示:
我正在使用带有 Bootstrap 4 的 Symfony 5.2,我正在设计一个包含 ChoiceType 字段的表单。我需要一个占位符来显示,例如“Select 一个选项”。我尝试了不同的选项,其中 none 有效。我的档案 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' ,
],
])
我的 Twig 模板是:
<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>
占位符没有出现。
我应该如何使占位符在上述字段的表单中可见?
正如文档所说,您必须使用 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' ,
],
])
应用“jona303”提出的解决方案,完整代码如下所示: 文件 ComisionNewFormType.php:
->add('turno', ChoiceType::class, [
'label' => 'Turno:',
'placeholder' => '-Seleccione',
'choices' => [
'Mañana' => 'Mañana' ,
'Tarde' => 'Tarde',
'Noche' => 'Noche' ,
'Desconocido' =>'Desconocido' ,
],
])
Twig 模板是:
<div class="col-sm-2">
Turno:<font color="red"> {{ form_errors(form.turno)}}</font>
{{ form_widget(form.turno) }}
</div>
结果如下所示: