新线(<br/>)之间的Symfony形式的无线电选择

时间:2015-03-31 13:59:36

标签: php symfony twig newline symfony-forms

我有这个表单生成代码..:

$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/>标记。

此外,我无法找到如何使用树枝模板渲染表单,因此请勿触摸PHP代码,例如,我如何在单选按钮列表中专门“装饰”每个选项。< / p>

 <div style='margin:25px'>
            {{ form_start(form_options) }}
            {{ form_widget(form_options) }}
            {{ form_end(form_options) }}
        </div>

我该如何延长?

2 个答案:

答案 0 :(得分:2)

您可以根据需要渲染每个表单域。不要使用{{ 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

答案 1 :(得分:0)

最快的解决方案

将此添加到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的默认主题发生更改,您将错过它,因为您将其覆盖。