2012-09-03 10 views
19

W Symfony2 składnik HTML select jest przedstawiany jako ChoiceType obiektu, który jest wykorzystywany w rzeczywistości również checkboxes i radiobuttons.wybrać z optgroup w Symfony 2,0

Czy ktoś naprawdę wiedzieć jak renderowanie wybierz z opcją optgroup w Symfony2?

Dla Uzupełniająco tutaj zgłosić przykład wybrać z optgroup tag (przykład z w3cschools):

<select> 
    <optgroup label="Swedish Cars"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    </optgroup> 
    <optgroup label="German Cars"> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
    </optgroup> 
</select> 

Ponadto należy zauważyć, że istnieje podobna po here, ale odpowiedzi nie są przekonujące.

+0

Wydaje się być ustalona w sf2.1 ([zobacz doc] (http://symfony.com/doc/master/reference/forms/types/entity.html#group- przez)). Czy używasz sf2.0 lub sf2.1? – j0k

+0

SF2.0! Ale SF2.1 jest teraz na RC2! Lepiej więc poczekać na pierwsze wydanie stabilne 2.1 ... Czy powinienem anulować pytanie? – JeanValjean

+0

Nie, nie zamykaj, może istnieć obejście, aby optgroup na sf2.0, ale nie wiem. – j0k

Odpowiedz

34

Wykonaj:

$car_choices = array(
    'Swedish Cars' => array(
     'volvo' => 'Volvo', 
     'saab' => 'Saab', 
    ), 
    'German Cars' => array(
     'mercedes' => 'Mercedes', 
     'audi' => 'Audi' 
    ) 
); 

$form = $this->createFormBuilder() 
     ->add('car', 'choice', array(
      'label' => 'Choose your car', 
      'choices' => $car_choices, 
      )) 
     ->getForm(); 

Works dla Symfony 2.0.x

+1

Działa jak urok w mojej aplikacji Symfony2.0.17! Muchas gracias ... – JeanValjean

+0

Podobnie jak w Symfony 1.x: tablica tablic. – j0k

+0

Idealny! Świetna alternatywa dla używania encji. –

16

To zależy w jaki sposób podmiot jest zdefiniowany i jak grupa swoją jednostkę. Zakładając, że grupowanie jest wykonywane, biorąc pod uwagę parametr w twoim obiekcie, powiedzmy "marka". Można to zrobić:

$builder->add('cars', null, array(
    'group_by'=> 'brand' 
)); 
+0

jak o samoindeksowaniu. jak kategoria i podkategoria? –

+0

@Daskul Przepraszam, nie rozumiem o co ci chodzi. – Sylvain

+0

Relacja własna. masz jednostkę, która ma odniesienie do tego samego typu jednostki, co jej rodzic. Jak w kategorii. Chcę, aby wszystkie moje kategorie w jednej tabeli bazy danych nadal były w stanie tworzyć hierarchie. Dawny. Stworzę kategorię Komputer, Laptop, Komputer stacjonarny, ale chcę Laptopa i Pulpit pod kategorią kodeka –

Powiązane problemy