Open
Description
Description
When i create a BirthdyaType it is displayed like this:
<div id="my_entity_birthday">
<div class="visually-hidden">
<label class="form-label required" for="my_entity_birthday_year">Year</label>
<label class="form-label required" for="my_entity_birthday_month">Month</label>
<label class="form-label required" for="my_entity_birthday_day">Day</label>
</div>
<div class="input-group">
<select id="my_entity_birthday_day" name="my_entity[birthday][day]" required="required" class="form-select">
...
</select>
<select id="my_entity_birthday_month" name="my_entity[birthday][month]" required="required" class="form-select">
...
</select><select id="my_entity_birthday_year" name="my_entity[birthday][year]" required="required"
class="form-select">
...
</select>
</div>
</div>
The hidden div (.visually-hidden
) can not be changed, even with label_attr
. A way to resolve can be using the label_attr
actually useless on this field. It will also offer more control on translation.
Example
Writing:
$builder
->add('birthday', BirthdayType::class, [
'widget' => 'choice',
'label' => 'birthday',
'required' => true,
label_attr' => [
'year' => 'Special year',
'month' => 'Special month',
'day' => 'Special day',
],
])
Will display
<div id="my_entity_birthday">
<div class="visually-hidden">
<label class="form-label required" for="my_entity_birthday_year">Special year</label>
<label class="form-label required" for="my_entity_birthday_month">Special month</label>
<label class="form-label required" for="my_entity_birthday_day">Special day</label>
</div>
...