我想知道在初始化表单对象之后是否可以修改表单配置(我将表单定义为服务)。
即,在控制器中创建表单时,我们可以这样做:
$form = $this->createForm('some_form_type', $entity, ['some_key' => true]);
但是如果我想在初始化后修改$options
该怎么办。
FormInterface
公开了返回getConfig()
的{{1}}方法,因此我们可以直接访问配置对象。但是,此对象不会暴露任何setter。 FormConfigInterface
也不公开任何配置setter方法。
简而言之,您是否知道在初始化表单对象后修改表单配置对象的方法?
答案 0 :(得分:1)
我想问你的第一个问题是:为什么要在构建表单对象后修改表单配置?
这实际上是不可能的,因为配置在被表单构建器(FormBuilderInterface
)使用之前被锁定,以便创建和初始化表单(FormInterface
)实例。
所以,除非您使用自己的FormBuilderInterface
和FormConfigBuilder
个实例,而不是在构建后锁定配置,您应该使用表单构建器在之前正确修改任何内容构建表单实例。