Начиная с Symfony 2.8, вы можете передать FQCN только в метод createForm контроллера. Итак, мой вопрос: как передать параметры конструкции в конструкцию класса формы, когда я создаю форму в контроллере?
<Symfony 2.8 Я мог бы сделать (MyController.php):
$this->createForm(new MyForm($arg1, $arg2));
Symfony 2.8+ Я могу сделать только (MyController.php):
$this->createForm(MyForm::class);
Итак, как я могу передать аргументы конструкции? Эти аргументы предоставляются в действиях контроллера, поэтому я не могу использовать метод «Формы как службы» …
просто:
$this->createForm(MyForm::class, $entity, ['arg1' => $arg1, 'arg2' => $arg2]);
который на самом деле должен был быть сделан до 2.8 в любом случае.
редактировать
основанный на вашем комментарии, вам необходимо настроить значения по умолчанию в самом типе класса:
public function configureOptions( OptionsResolver $resolver ) { $resolver->setDefaults( [ 'arg1' => null, 'arg2' => null, ] ); }