2012-03-29 5 views
6

Ich habe folgendes Symfony2 Form:Einstellung Standardwert auf einem Symfony2 Optionsfeld Auswahlfeld

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

(. Ich meine anderen Bereiche aus Gründen der Übersichtlichkeit weggelassen)

Als ich dieses Formular in dem Browser besuchen, Die Option "Home" ist nicht ausgewählt. Ich habe auch die Quelle überprüft, und es sieht auch nicht so aus, als wäre dort das richtige Attribut gesetzt.

Gibt den Standardwert funktionieren anders für Radio-Buttons als für andere Arten von choice Felder? Was könnte hier vor sich gehen?

Antwort

10

Wenn Sie eine Option die empty_value ausgewählt werden wird nicht funktionieren.

Die einfach Lösung ist, einen Mehrwert für Ihr Objekt zu setzen, bevor das Formular hinzugefügt (wie $myentity->setRadiobutton(1)). Symfony verstehen und es als ein ausgewählter Wert hinzufügen (funktioniert mit Auswahlfragen so könnte das gleiche mit Radio sein!)

+0

Sie richtig sind: das funktionierte für meinen Radioknopf. Vielen Dank! –

+1

Es wird nicht mit einem Formular-Elemente festgelegt als ‚property_path‘ => false helfen. – marden

+0

und wann hast du ein Formular ohne Entity? – altore

0

in Ihrem Controller newAction(), vor dem $form = $this->createCreateForm($entity); den Standardwert wie diese $entity->setSubmitter_is_home(1);

hinzufügen