2012-03-29 18 views
6

Ho il seguente modulo di Symfony2:Impostazione valore di default su uno Symfony2 pulsante di scelta di campo scelta

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

(. Ho omesso i miei altri campi per chiarezza)

Quando visito questa forma nel browser, l'opzione "Home" non è selezionata. Ho controllato anche l'origine, e non sembra che l'attributo appropriato sia impostato lì.

Il valore predefinito funziona in modo diverso per i pulsanti di scelta rispetto agli altri tipi di campi choice? Cosa potrebbe succedere qui?

risposta

10

Se si desidera selezionare un'opzione, lo empty_value non funzionerà.

La soluzione semplice è impostare un valore per il proprio oggetto prima di aggiungere il modulo (come $myentity->setRadiobutton(1)). Symfony capirà e aggiungerlo come un valore selezionato (funziona con il tipo di scelta in modo potrebbe essere lo stesso con la radio!)

+0

Sei corretta: quello ha funzionato per il mio pulsante radio. Grazie! –

+1

Non sarà di aiuto con un elemento del modulo impostato come "percorso_della proprietà" => falso. – marden

+0

e quando hai una forma senza entità? – altore

0

nel controller newAction(), befor $form = $this->createCreateForm($entity); aggiungere il valore di default come questo $entity->setSubmitter_is_home(1);

Problemi correlati