Подтвердить что ты не робот

Symfony 3 createForm с параметрами построения

С 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);

Итак, как я могу передать аргументы конструкции? Эти аргументы предоставляются в действиях контроллера, поэтому я не могу использовать метод "Формы как службы"...

4b9b3361

Ответ 1

просто:

$this->createForm(MyForm::class, $entity, ['arg1' => $arg1, 'arg2' => $arg2]);

который на самом деле должен был быть сделан до 2.8 в любом случае.

изменить

на основе вашего комментария, вам нужно настроить значения по умолчанию в самом типе класса:

public function configureOptions( OptionsResolver $resolver ) {
    $resolver->setDefaults( [
      'arg1' => null,
      'arg2' => null,
    ] );
}