7

symfony2フォームビルダーを使用してオプション要素にカスタム属性を追加しようとしていますが、それがネイティブに可能かどうかはわかりません。そうでない場合は、機能を追加する方法を知る必要があります。

例として、次のフォームを取り上げます。

class FooForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('user','choice',array(
            'choices' => array(
                 'designers'=>'designers',
                 '1'=>'mike',
                 '2'=>'carroll',
                 'developers'=>'developers',
                 '3'=>'chase',
                 '4'=>'brett',
                 '5'=>'jordan',
             )
        ));
    }
}

次に、レンダリング時に次のようにする必要があります。

<select>
    <option value="" disabled="disabled">designers</option>
    <option value="1">mike</option>
    <option value="2">carroll</option>
    <option value="" disabled="disabled">developers</option>
    <option value="3">chase</option>
    <option value="4">brett</option>
    <option value="5">jordan</option>
</select>

私が期待するのは次のようなものです:

class FooForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('user','choice',array(
            'choices' => array(
                 'designers'=>array(
                      'label'=>'designers',
                      'attr'=>arrry('disabled'=>'disabled')
                 ),
                 '1'=>'mike',
                 '2'=>'carroll',
                 'developers'=>array(
                      'label'=>'developers',
                      'attr'=>arrry('disabled'=>'disabled')
                 ),
                 '3'=>'chase',
                 '4'=>'brett',
                 '5'=>'jordan',
             )
        ));
    }
}

しかし、それはうまくいきません。したがって、これに関するヘルプは大歓迎です。

4

3 に答える 3

6

2.7choice以降で可能です。ここを見てください。と。choice_attr

于 2015-09-15T07:11:39.863 に答える
0

「選択」ウィジェットから拡張された独自のウィジェットを作成する必要がある場合があります。

そのため、オプションでカスタム レンダリングを使用できるようになり、各オプションの属性で必要なものを何でも設定できるようになります。

注意:私は同じように見えましたが、「単純な「選択」を使用し、テンプレートに追加のオプション(「選択」からの値を含む配列、および追加の属性を指定)を使用してJS変数を追加しました。ページ読み込みイベントのオプションの値に基づいて、各追加属性を適用します。

于 2015-02-06T10:20:32.810 に答える
-1

symfony2 で設定された属性には、以下のコードを使用してください

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array('class'=>'calendar')
 ))
于 2014-08-09T14:26:17.183 に答える