2012-03-29 1 views
6

は、私は、次のSymfony2のフォームを持ってSymfony2のラジオボタンを選択フィールドにデフォルト値を設定する:

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder 
     ->add('submitter_is_home', 'choice', array(
      'expanded' => true, 
      'choices' => array('1' => 'Home', '' => 'Away'), 
      'data' => '1', 
     )) 
    ; 
} 

(私は明確にするため、私の他のフィールドを省略。)

を、私は、ブラウザでこのフォームにアクセスすると、 「ホーム」オプションは選択されていません。私はソースもチェックしましたが、適切な属性が設定されているようには見えません。

ラジオボタンのデフォルト値は、他のタイプのchoiceフィールドと異なるのですか?ここで何が起こっているのでしょうか?

答えて

10

オプションを選択する場合は、empty_valueは機能しません。

単純な解決策は、フォームを追加する前にオブジェクトに値を設定することです($myentity->setRadiobutton(1)など)。 symfonyは理解し、選択した値として追加します(選択肢タイプで動作しますので、ラジオと同じかもしれません!)あなたのコントローラnewAction()

+0

のようにデフォルト値を追加しますbefor:私のラジオボタンのために働いた。ありがとう! –

+1

'property_path' => falseとして設定されたフォーム要素では役に立ちません。 – marden

+0

とエンティティなしのフォームがある場合は? – altore

0

$form = $this->createCreateForm($entity);は、あなたが正しいなら、この$entity->setSubmitter_is_home(1);