2012-03-29 32 views
6

Mam następujący formularz Symfony2:Ustawienie na Symfony2 przycisk radiowy pola wyboru

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

(. pominąłem moje inne pola dla jasności)

Kiedy odwiedzam tego formularza w przeglądarce, opcja "Strona główna" nie jest wybrana. Sprawdziłem też źródło i nie wygląda to tak, jak tam, gdzie jest ustawiony odpowiedni atrybut.

Czy domyślna wartość działa inaczej w przypadku przycisków radiowych niż w przypadku innych typów pól choice? Co tu może się stać?

Odpowiedz

10

Jeśli chcesz wybrać opcję, empty_value nie będzie działać.

Najprostszym rozwiązaniem jest ustawienie wartości obiektu przed dodaniem formularza (np. $myentity->setRadiobutton(1)). Symfony zrozumie i dodać go jako wybranej wartości (współpracuje z rodzaju wybór więc może być taka sama, z radia!)

+0

jesteś poprawne: to działało dla mojego przycisku radiowego. Dzięki! –

+1

Nie pomoże przy ustawieniu elementu formularza jako 'property_path' => false. – marden

+0

i kiedy masz formularz bez istoty? – altore

0

w kontrolerze newAction(), befor $form = $this->createCreateForm($entity); dodać domyślną wartość jak ten $entity->setSubmitter_is_home(1);

Powiązane problemy