2016-03-21 9 views
1

Mit Symfony2, wenn ich ein Formular von einem Controller zu erstellen, konnte ich Parameter an:Wie Parameter in FormType für symfony3 senden?

$form = $this->createForm(
    new articleType(
     $localedefault, 
     $this->get('request')->getLocale(), 
     $depotCat, 
     $this->get('security.context') 
    ), 
    $article 
); 

ich diese Parameter aus dem Konstruktor meines ArticleType gewonnen.

Mit symfony3, ich habe dies:

$form = $this->createForm(
    ArticleType::class, 
    $article, 
    array(
     $localedefault, 
     $request->getLocale(), 
     $depotCat, 
     $this->get('security.authorization_checker') 
    ) 
); 

aber diese Methode funktioniert nicht.

+0

Bitte formatieren Sie Ihren Code, da dies die Lesbarkeit erleichtert und eher Antworten findet. Ich habe Ihre Frage entsprechend bearbeitet. – k0pernikus

+0

ok Entschuldigung, ich würde nächstes Mal besser machen – strauss

Antwort

2

Verwenden Sie in Ihrer Klasse configureOptions, dann: setDefault('myOption', []).

Nach Instanziierung:

$form = $this->createForm(
    ArticleType::class, 
    $article, 
    array(
     'myOption'=>array(...) 
    ) 
); 

Und dann in buildForm Sie in dem options Array einen richtigen Schlüssel haben.

+0

in meiner Klasse, wie kann ich diese Optionen in der Funktion configureOptions.this Funktion nur 'optionResolver' akzeptieren – strauss

+0

Haben Sie versucht, configureOptions in Ihrer '' ArticleType'' Klasse zu implementieren die Dokumentation? Ich habe keinen vollständig funktionierenden Code gepostet. Siehe die Dokumentation, dann wird alles vernünftig aussehen. – eRIZ

+0

es ist gut, ich habe verstanden, wie es funktioniert.Vielen Dank für Ihre Hilfe – strauss