mic*_*ndr 2 symfony twig bootstrap-4
我发现你可以告诉 symfony 以引导方式生成表单,通过在你的 twig.yaml 文件中添加它
twig:
form_themes: ['bootstrap_4_layout.html.twig']
Run Code Online (Sandbox Code Playgroud)
这会以正常的引导程序方式呈现复选框,如下所示:
<fieldset class="form-group">
<legend class="col-form-label required">Subjects</legend>
<div id="form_subjects">
<div class="form-check">
<input type="checkbox" id="form_subjects_0" name="form[subjects][]" class="form-check-input" value="1">
<label class="form-check-label" for="form_subjects_0">4IZ110</label>
</div>
<div class="form-check">
<input type="checkbox" id="form_subjects_1" name="form[subjects][]" class="form-check-input" value="2">
<label class="form-check-label" for="form_subjects_1">4MA106</label>
</div>
</div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
这太棒了,但我想以这种方式将它生成为自定义表单(我正在使用 bootswatch 模板):
<div class="form-group">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1" checked="">
<label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我在 symfony 文档中发现您可以“按自定义生成表单”,但这只是基于添加class="checkbox-custom"到元素<div id="form_subjects">
所以我的问题是:有没有办法在本地生成自定义引导复选框(和单选按钮)?还是我必须重写bootstrap_4_layout.html.twig?
好的,当我仔细查看 时bootstrap_4_layout.html.twig,我找到了解决方案:只需'label_attr' => ['class' => 'checkbox-custom']在创建表单时添加到选项。
现在我的表单看起来像这样,并且可以正常工作:
$form = $this->createFormBuilder()
->add(
'subjects',
ChoiceType::class,
[
'choices' => $this->subjectFacade->getAll(),
'choice_label' => 'indent',
'choice_value' => 'id',
'expanded' => true,
'multiple' => true,
'label_attr' => ['class' => 'checkbox-custom'],
]
)
->getForm();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3360 次 |
| 最近记录: |