具有构造参数的Symfony 3 createForm

时间:2016-05-03 08:17:39

标签: php symfony

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

那么如何传递我的构造参数呢?这些参数在控制器操作中提供,因此我不能将" Forms用作服务"方法...

1 个答案:

答案 0 :(得分:16)

简单地:

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

实际上它应该是如何在2.8之前完成的。

修改

根据您的评论,您需要在类类型本身中设置默认值:

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