2 Stimmen

Symfony 2 Formulare - Daten an Auswahlfeld ohne Datenklasse (keine Entität) übergeben

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?

1voto

Acyra Punkte 15386

Überprüfen Sie die Antwort auf Symfony 2 - wie Daten an den FormBuilder übergeben werden können? für die Technik, Werte an eine FormType-Klasse mithilfe des Konstruktors zu übergeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X