2016-11-11 35 views
0

Ich versuche, eine Reihe von Optionsfeldern (männlich oder weiblich) auf meiner Indexseite anzuzeigen. In meinem Formular bauen ich das Formular wie folgt aus:Angezeigtes Array als Optionsfelder anzeigen

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
    ->add('gender', ChoiceType::class, array(
     'choices' => array(
      'Male' => 1, 
      'Female' => 2, 
     ))); 
} 

dann im Controller:

public function indexAction(Request $request) 
{ 
    $participantEntry = new Participants(); 

    $form = $this->createForm(ParticipantsType::class, $participantEntry,[ 
     'action' => $request->getUri() 
    ]); 

    $form->handleRequest($request); 

    return $this->render('SurveyBundle:Page:index.html.twig', 
     ['form' => $form->createView()]); 

} 

Aber ich bin nicht sicher, wie eigentlich als Radiobuttons in meinem Zweig Datei anzuzeigen, ist es das, was ich habe versucht:

{% for g in form.gender %} 
    {{ g.value }} 
{% endfor %} 

BTW: Die $ Geschlecht in meinem Entity ein int

Was nicht tut Arbeit, weiß jemand was ich falsch mache?

Antwort

-1

Ändern Sie den add in Bauer als

->add('gender', ChoiceType::class, array(
    'choices' => array(
     'Male' => 1, 
     'Female' => 2, 
    ), 
    'expanded' => true, 
    'multiple' => false 
); 

Die Kombination aus 'expanded' => true folgen und 'multiple' => false werden Radiobuttons erzeugen, dann in Zweig, benutzen Sie einfach

form_widget(form.gender) 
+0

Perfect! Ist es ihre Art, die zurückgegebenen Optionsfelder tatsächlich anzupassen? – KTOV

+0

Entschuldige, lass mich genauer werden. Gibt es eine Möglichkeit, jedes Geschlecht innerhalb des Arrays zu durchlaufen? Also kann ich ein div um jeden Gegenstand wickeln? – KTOV

+0

@ KITOV ja, natürlich, Sie können wie Sie getan iterieren und schreiben Sie die gesamte Struktur der HMTL (nicht nur externe Div aber die ganze Struktur) und verwenden Sie den Wert des Radios – DonCallisto

Verwandte Themen