【发布时间】:2012-03-01 17:16:00
【问题描述】:
我正在使用带有集合字段类型(子表单)的表单(父表单)。集合中的每种类型都是一个包含一些选择字段的表单,我想使用 query_builder 参数过滤此字段选择,以便与其他实体等连接。我知道如何将参数从控制器传递给父表单,但是如何将参数传递给集合中的每个项目(子表单)?
【问题讨论】:
-
“参数”是指传递给
buildForm()的$options数组吗?
我正在使用带有集合字段类型(子表单)的表单(父表单)。集合中的每种类型都是一个包含一些选择字段的表单,我想使用 query_builder 参数过滤此字段选择,以便与其他实体等连接。我知道如何将参数从控制器传递给父表单,但是如何将参数传递给集合中的每个项目(子表单)?
【问题讨论】:
buildForm()的$options数组吗?
你想要的是一个数据转换器。数据转换器从您的子表单中获取数据,允许您从内部对数据库进行查询,并在最后传递 1 个最终结果。前几天我不得不使用国家和邮政编码来查找一个国家/地区的有效邮政编码。
这里是食谱信息的链接,它将向您展示如何使用它。
http://symfony.com/doc/current/cookbook/form/data_transformers.html
【讨论】:
这是我的回答: https://stackoverflow.com/a/17223519/1756517
在每个表单中,通过构造方法传递变量($form = new FormType($your_variable);)
【讨论】:
响应有点晚,但是对于 Symfony3,您应该使用 entry_options 参数 as mentioned here。在与您类似的场景中,这正是我所需要的。
【讨论】: