2015-03-31 48 views
2

无线电选择之间我有这样的形式生成代码..:换行(<br>)中的Symfony形式

$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代码,例如,我怎么能专“装饰” 每个选择在我的单选按钮列表。

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

我该如何扩展?

回答

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

+0

谢谢,但{{form_row}}处理选择列表不是单独选择,所以我不知道如何用换行符分隔选择。 – Croll 2015-03-31 14:21:50

+0

我编辑了我的帖子。看一看 – 2015-03-31 14:26:35

+0

你知道我怎样才能将我的选择复选框移动到标签左侧,默认情况下不是正确的? – Croll 2015-03-31 16:09:10