Symfony 2中来自父级的自定义嵌套表单

时间:2012-12-18 09:42:16

标签: forms symfony symfony-2.1

我有一些嵌套的formTypes,如下所示:

Form1其中包含Form2,其中包含Form3

根据某些信息(例如,如果当前用户是管理员),我想更改Form3上某个字段的类型。

问题是我不知道该怎么做,因为setOption对象中没有$builder方法,我可以从Form1拨打电话。

此外,我不知道我应该如何组织我的表格,事实上Form3也包含在其他一些形式中,而且每次都是几乎相同的字段,只有少数必须改变,这是为什么我提出Form3表格以避免冗余。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用事件订阅者根据某些数据动态删除/添加字段。

此类事件订阅者允许您在创建表单后修改表单数据,并且它可以在Form实例上处理而不是在Type上。您应该找到更多信息here

BTW关于所需的依赖关系,如安全上下文或您可以create given form type as service并注入所需对象