dpje52239
2014-11-08 18:28
浏览 39
已采纳

在Symfony / Twig的表格中包裹一堆选择

I want to group many piles of checkboxes listed bellow the same Label in this fashion:

The desired widget

I have this code:

$builder->add('cleanliness', 'choice', array(
    'choices'   => array('Strongly disagree', 'Disagree', 'Neither agree nor disagree', 'Agree', 'Strongly agree'),
    'multiple'  => true,
    'expanded' => true
));
$builder->add('waitingTime', 'choice', array(
    'choices'   => array('Strongly disagree', 'Disagree', 'Neither agree nor disagree', 'Agree', 'Strongly agree'),
    'multiple'  => true,
    'expanded' => true
));
... And a bunch of other checkboxes piles

图片转代码服务由CSDN问答提供 功能建议

我想以这种方式对同一个Label下面列出的许多复选框进行分组: \ n

所需的小工具 < / p>

我有这段代码:

  $ builder-&gt; add('cleanliness','choice',array(
')choice  '=&gt;数组('非常不同意','不同意','既不同意也不反对','同意','非常同意'),
'倍数'=&gt; true,
'展开'=&gt;  true 
)); 
 $ builder-&gt; add('waitingTime','choice',array(
'choices'=&gt; array('强烈不同意','不同意','既不同意也不反对'  ,'同意','非常同意'),
'倍'=&gt;真,
'展开'=&gt;真
)); 
 ...还有一堆其他复选框桩
 <  / code>  
 
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • dongyaobo9081 2014-11-08 19:27
    最佳回答

    In the controller:

    $answers = array('Strongly disagree', 'Disagree', 'Neither agree nor disagree', 'Agree', 'Strongly agree');
    
    // ...
    
    $builder->add('cleanliness', 'choice', array(
        'label' => 'The clinic is clean',
        'multiple' => true,
        'expanded' => true,
        'choices' => $answers
    ));
    $builder->add('waitingTime', 'choice', array(
        'label' => 'My waiting time was reasonable',
        'multiple' => true,
        'expanded' => true,
        'choices' => $answers
    ));
    
    // ...
    
    return array('form' => $form->createView(), 'answers' => $answers);
    

    Then in the view...

    <table border="1">
      <tr>
        <td></td>
      {% for answer in answers %}
        <td>{{ answer }}</td>
      {% endfor %}
      </tr>
      <tr>
      <td>{{ form_label(form.waitingTime) }}</td>
      {% for choice in form.waitingTime %}
        <td>{{ form_widget(choice) }}</td>
      {% endfor %} 
      </tr>
      <tr>
      <td>{{ form_label(form.cleanliness) }}</td>
      {% for choice in form.cleanliness %}
        <td>{{ form_widget(choice) }}</td>
      {% endfor %} 
      </tr>
      {# and so on... #}
    </table>
    

    Anyways, that's the general gist. Should those choices really be checkboxes though, or radio buttons so they can only select one of each? If so keep expanded set to true and multiple set to false.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题