我正在測驗 FormBuilder。當我生成一個<select>欄位時,我不知道如何將 CSS 類添加到這個 HTML 元素:Symfony 將類添加到 parent <div>。
這是我的 FormBuilder 類:
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
// (...)
->add('roles', CollectionType::class, [
'attr' => ['class' => 'MyClass'],
'entry_type' => ChoiceType::class,
'entry_options' => [
'label' => 'Select a role',
'label_attr' => [
'class' => 'form-label'
],
'choices' => [
'User' => 'ROLE_USER',
'Admin' => 'ROLE_ADMIN',
],
],
])
// (...)
}
}
這是 HTML 渲染:
<div id="user_roles" class="MyClass">
<div>
<label class="form-label required" for="user_roles_0">Select a role</label>
<select id="user_roles_0" name="user[roles][0]">
<option value="ROLE_USER" selected="selected">User</option>
<option value="ROLE_ADMIN">Admin</option>
</select>
</div>
</div>
這是我想要得到的 HTML 渲染:
<div id="user_roles">
<div>
<label class="form-label required" for="user_roles_0">Select a role</label>
<select id="user_roles_0" name="user[roles][0]" class="MyClass">
<option value="ROLE_USER" selected="selected">User</option>
<option value="ROLE_ADMIN">Admin</option>
</select>
</div>
</div>
我也嘗試從 Twig 模板修改類,但結果是一樣的。
有沒有辦法將這個類分配給<select>使用 FormBuilder?
uj5u.com熱心網友回復:
要將類添加到選擇中,請將attr陣列移動到entry_options:
$builder
// (...)
->add('roles', CollectionType::class, [
'entry_type' => ChoiceType::class,
'entry_options' => [
'attr' => ['class' => 'MyClass'],
'label' => 'Select a role',
'label_attr' => [
'class' => 'form-label'
],
'choices' => [
'User' => 'ROLE_USER',
'Admin' => 'ROLE_ADMIN',
],
],
])
// (...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/460448.html
