web-dev-qa-db-ja.com

Symfony2.0のoptgroupで選択

Symfony2では、select htmlコンポーネントはChoiceTypeオブジェクトとしてレンダリングされます。これは、実際にはcheckboxesおよびradiobuttonsにも使用されます。

誰か本当に知っていますかSymfony2のoptgroupオプションで選択をレンダリングする方法

完全を期すために、ここではselectの例をoptgroupタグ付きで報告します( w3cschools の例):

<select>
  <optgroup label="Swedish Cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
  </optgroup>
  <optgroup label="German Cars">
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </optgroup>
</select> 

さらに、同様の投稿があることに注意してください ここ が、答えは説得力がありません。

20
JeanValjean

これを行う:

$car_choices = array(
    'Swedish Cars' => array(
        'volvo' => 'Volvo',
        'saab' => 'Saab',
    ),
    'German Cars' => array(
        'mercedes' => 'Mercedes',
        'audi' => 'Audi'
    )
);

$form = $this->createFormBuilder()
        ->add('car', 'choice', array(
            'label' => 'Choose your car',
            'choices' => $car_choices,
            ))
        ->getForm();

Symfony2.0.xで動作します

35
Carlos Granados

エンティティの定義方法とエンティティのグループ化方法によって異なります。オブジェクト内のパラメータを指定してグループ化が行われると仮定して、「ブランド」としましょう。できるよ:

$builder->add('cars', null, array(
  'group_by'=> 'brand'
));
16
Sylvain