从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用作服务"方法...
答案 0 :(得分:16)
简单地:
$this->createForm(MyForm::class, $entity, ['arg1' => $arg1, 'arg2' => $arg2]);
实际上它应该是如何在2.8之前完成的。
修改强>
根据您的评论,您需要在类类型本身中设置默认值:
public function configureOptions( OptionsResolver $resolver ) {
$resolver->setDefaults( [
'arg1' => null,
'arg2' => null,
] );
}