Angenommen, wir haben ein Formular in unserem Controller:
$form = $this->createForm(new OurFormType());
Hier ist die Builder-Methode der OurFormType-Klasse
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('list','choice')
->add('agency','text')
->add('type','hidden');
}
Wir haben keine data_class, keine verwendete Entität. Wir können die Daten auf andere Weise an das Formular übergeben. Das, woran wir interessiert sind, ist das Feld list, das den Typ choice hat. Dieser Typ wird verwendet, um eine Auswahlliste in Symfony 2 Formularen zu erstellen.
Hier kommen wir zur Aufgabe. Und die Aufgabe besteht darin, dieses list mit Daten zu füllen, die im Controller erhalten werden. Angenommen, es handelt sich um ein assoziatives Array. Daher können wir unsere modifizierte Controller-Aktion bereitstellen:
$listData = array('key1'=>'val1', 'key2' => 'val2');
$form = $this->createForm(new OurFormType());
return $this->render('UMDOurBundle:Test:index.html.twig',
array(
'form' => $form->createView()
));
Ich muss dieses Array im List-Feld in meinem Controller einfügen, nachdem ich das Objekt an die $form-Variable übergeben habe. Etwas wie
$form->get('list',array('choices'=>$listData));
Gibt es so etwas in Symfony 2 Formularen?