Symfony 形式的无线电选项之间的换行符(<br>)
Newline (<br>) between radio choices in Symfony form
我有这个表格生成代码..:[=14=]
$form = $this->createFormBuilder($task)
->add('mode', 'choice', array(
'label' => false,
'choices' => array(
'mode1' => '1',
'mode2' => '2',
'mode3' => '3',
),
'multiple' => false,
'expanded' => true,
'required' => true,
))
->getForm();
问题是呈现的表单有内嵌的选项(无线电输入),它们之间没有 <br/>
标签。
此外,我找不到如何使用 twig 模板渲染表单,因此请勿触摸 PHP 代码,例如,我如何专门 'decorate' each 在我的单选按钮列表中选择。
<div style='margin:25px'>
{{ form_start(form_options) }}
{{ form_widget(form_options) }}
{{ form_end(form_options) }}
</div>
我该如何扩展它?
您可以根据需要呈现每个表单域。不要使用 {{ form_widget(form_options) }}
使用 {{ form_row (form.fieldName) }}
然后你可以添加 html 和你喜欢的风格:这是一个例子:
<div class="checkbox-list">
<label class="checkbox-inline col-md-6">
<div class="checker" id="uniform-inlineCheckbox21">
<span class="">
{{form_row(form.fieldName)}}
</span>
</div>
fieldName
</label>
您还可以传递对象列表并手动创建您的输入:
{% for language in languages %}
<div class="checkbox-list">
<label class="checkbox-inline col-md-6">
<div class="checker" id="uniform-inlineCheckbox21">
<span class="">
<input type="checkbox" name="langues[]" id="course{{loop.index}}" value="{{language.id}}" data-title="{{language.designation}}">
</span>
</div>
{{language.designation}}
</label>
</div>
{% endfor %}
您可以使用 form_theme 并通过 symfony 覆盖选择小部件用户的最后一个解决方案:
http://symfony.com/fr/doc/current/cookbook/form/form_customization.html
最快的解决方案
将此添加到您的 CSS:
label:after { content:"\a"; white-space:pre; }
肮脏的解决方案
像这样在 Twig 中单独渲染每个单选按钮:
{{ form_widget(form.formField.0) }}{{ form_label(form.formField.0) }}<br>
{{ form_widget(form.formField.1) }}{{ form_label(form.formField.1) }}
专业解决方案
自定义表单主题,如 https://symfony.com/doc/current/form/form_customization.html
所述
缺点:如果 Symfony 的默认主题将来发生变化,您会错过它,因为您正在覆盖它。
我有这个表格生成代码..:[=14=]
$form = $this->createFormBuilder($task)
->add('mode', 'choice', array(
'label' => false,
'choices' => array(
'mode1' => '1',
'mode2' => '2',
'mode3' => '3',
),
'multiple' => false,
'expanded' => true,
'required' => true,
))
->getForm();
问题是呈现的表单有内嵌的选项(无线电输入),它们之间没有 <br/>
标签。
此外,我找不到如何使用 twig 模板渲染表单,因此请勿触摸 PHP 代码,例如,我如何专门 'decorate' each 在我的单选按钮列表中选择。
<div style='margin:25px'>
{{ form_start(form_options) }}
{{ form_widget(form_options) }}
{{ form_end(form_options) }}
</div>
我该如何扩展它?
您可以根据需要呈现每个表单域。不要使用 {{ form_widget(form_options) }}
使用 {{ form_row (form.fieldName) }}
然后你可以添加 html 和你喜欢的风格:这是一个例子:
<div class="checkbox-list">
<label class="checkbox-inline col-md-6">
<div class="checker" id="uniform-inlineCheckbox21">
<span class="">
{{form_row(form.fieldName)}}
</span>
</div>
fieldName
</label>
您还可以传递对象列表并手动创建您的输入:
{% for language in languages %}
<div class="checkbox-list">
<label class="checkbox-inline col-md-6">
<div class="checker" id="uniform-inlineCheckbox21">
<span class="">
<input type="checkbox" name="langues[]" id="course{{loop.index}}" value="{{language.id}}" data-title="{{language.designation}}">
</span>
</div>
{{language.designation}}
</label>
</div>
{% endfor %}
您可以使用 form_theme 并通过 symfony 覆盖选择小部件用户的最后一个解决方案: http://symfony.com/fr/doc/current/cookbook/form/form_customization.html
最快的解决方案
将此添加到您的 CSS:
label:after { content:"\a"; white-space:pre; }
肮脏的解决方案
像这样在 Twig 中单独渲染每个单选按钮:
{{ form_widget(form.formField.0) }}{{ form_label(form.formField.0) }}<br>
{{ form_widget(form.formField.1) }}{{ form_label(form.formField.1) }}
专业解决方案
自定义表单主题,如 https://symfony.com/doc/current/form/form_customization.html
所述
缺点:如果 Symfony 的默认主题将来发生变化,您会错过它,因为您正在覆盖它。