2

(管理者が使用する) ユーザー登録フォームがあり、ロールの選択肢を含めたいと考えています。buildForm 関数で次のコードを使用して、ロールのドロップダウンを正常に追加しました。

    $builder
        ->add('roles', 'collection', array(
            'type'   => 'choice',
            'options'  => array(
                'choices'  => array(
                    'ROLE_CONTENT' => 'Innehåll',
                    'ROLE_LAYOUT'     => 'Skärmlayout',
                    'ROLE_VIDEO'    => 'Videouppladdning',
                    'ROLE_ADMIN'    => 'Administratör',
                ),
            ),
    ));

今、これをドロップダウンではなく複数選択またはチェックボックスのリストにしたいのですが、方法が見つからないか、十分に簡単なことのように思えるか、またはこのフィールドタイプの仕組みについて何かが欠けています.複数選択しないの?

4

3 に答える 3

7

collectionここではタイプは必要ありません。choice「複数」が設定されたタイプは、trueコレクションを正常に出力します。

$builder
    ->add('roles', 'choice', array(
        'expanded' => true,
        'multiple' => true,
        'choices'  => array(
            'ROLE_CONTENT' => 'Innehåll',
            'ROLE_LAYOUT'  => 'Skärmlayout',
            'ROLE_VIDEO'   => 'Videouppladdning',
            'ROLE_ADMIN'   => 'Administratör',
        ),
    ))
;
于 2012-08-11T11:16:31.897 に答える
0

現時点ではcollectionaschoiceタイプを使用しています。つまり、expandedmultipleオプションを使用して、必要な 4 つの要素タイプのいずれかをレンダリングできます。

于 2012-08-11T09:19:38.373 に答える
0

展開されたものは正常に機能し、ラジオボタンが表示されますが、チェックボックスが必要です。

これはラジオで機能します:

    $builder
        ->add('roles', 'collection', array(
            'type'   => 'choice',
            'options'  => array(
                'expanded' => true,
                'choices'  => array(
                    'ROLE_CONTENT' => 'Innehåll',
                    'ROLE_LAYOUT'     => 'Skärmlayout',
                    'ROLE_VIDEO'    => 'Videouppladdning',
                    'ROLE_ADMIN'    => 'Administratör',
                ),
            ),
    ));

ただし、これを配置すると、「指定された型「配列」、「文字列」の引数が予期されます」というエラーがスローされます。

    $builder
        ->add('roles', 'collection', array(
            'type'   => 'choice',
            'options'  => array(
                'expanded' => true,
                'multiple' => true,
                'choices'  => array(
                    'ROLE_CONTENT' => 'Innehåll',
                    'ROLE_LAYOUT'     => 'Skärmlayout',
                    'ROLE_VIDEO'    => 'Videouppladdning',
                    'ROLE_ADMIN'    => 'Administratör',
                ),
            ),
    ));
于 2012-08-11T09:26:05.123 に答える