Symfony 2 - 初始化表单对象后修改表单配置

时间:2015-12-14 11:56:22

标签: forms symfony

我想知道在初始化表单对象之后是否可以修改表单配置(我将表单定义为服务)。

即,在控制器中创建表单时,我们可以这样做:

$form = $this->createForm('some_form_type', $entity, ['some_key' => true]);

但是如果我想在初始化后修改$options该怎么办。

FormInterface公开了返回getConfig()的{​​{1}}方法,因此我们可以直接访问配置对象。但是,此对象不会暴露任何setter。 FormConfigInterface也不公开任何配置setter方法。

简而言之,您是否知道在初始化表单对象后修改表单配置对象的方法?

1 个答案:

答案 0 :(得分:1)

我想问你的第一个问题是:为什么要在构建表单对象后修改表单配置?

这实际上是不可能的,因为配置在被表单构建器(FormBuilderInterface)使用之前被锁定,以便创建和初始化表单(FormInterface)实例。

所以,除非您使用自己的FormBuilderInterfaceFormConfigBuilder个实例,而不是在构建后锁定配置,您应该使用表单构建器在之前正确修改任何内容构建表单实例