0

ドロップダウン (選択) のあるフォームがあり、デフォルトで選択されているオプションを選択したい:

これは、select を生成するコードです。

    $builder->add('language', 'choice', array(
        'label' => 'pages.age.gateway.language.label',
        'choices' => array(1 => 'first option', 2 => 'second option'),
    ));

私は次のことを試しました(ここで提案されているSymfony2 Setting a default choice field selection):

    $builder->add('language', 'choice', array(
        'label' => 'pages.age.gateway.language.label',
        'choices' => array(1 => 'first option', 2 => 'second option'),
        'data' => '2'
    ));

これは私のコードでは機能しませんでした (私の symfony2 の理解では、正しい方向に進んでいない可能性があります)。

別の方法として「preferred_choices」を使用することもできますが、オプションが表示される順序を変更したくないので、これは避けたいと思います。

4

2 に答える 2

1

フォームがエンティティに依存している場合:

/* Action */
public function myAction()
{
    $user = new User();
    $user->setLanguage(2); // Set the default option
    $form = $this->createForm(new UserType(), $user); // Give the user to the form

    if ($request->getMethod() == 'POST') {

            $form->bindRequest($request);

            if ($form->isValid()) {

                $user = $form->getData();
                // Do something like save / redirect
            }
     }

     return array(
        'form' => $form->createView(),
     );
}

また、preferred_choices キーのおかげで、優先する選択肢を設定できます (ただし、真のデフォルト値ではありません) (値を select の一番上に移動します)。

$builder->add('language', 'choice', array(
        'label' => 'pages.age.gateway.language.label',
        'choices' => array(1 => 'first option', 2 => 'second option'),
        'preferred_choices' => 2
));
于 2013-03-27T20:23:50.413 に答える
-1

値なしでオプションを追加したい。オプションでこれを行うことができますempty_value

    $builder
        ->add('gender', 'choice', array(
            'label'       => 'Gender',
            'choices' => array('male', 'female'),
            'empty_value' => 'Please select option'
    ));
于 2014-03-10T21:22:25.687 に答える