我有一个 zend 表单,其中我需要每个元素都由一个显示组包装。然后我需要将一组元素包装在另一个显示组中。由于 zend 表单不支持嵌套显示组,我使用子表单代替。
所以,我现在的结构是:
Form
--- SubForm (1)
--- --- DisplayGroup (1-1)
--- --- --- Element (1)
--- --- DisplayGroup (1-2)
--- --- --- Element (2)
--- SubForm (2)
--- --- DisplayGroup (2-1)
--- --- --- Element (3)
--- --- DisplayGroup (2-2)
--- --- --- Element (4)
等等
然而,由此而来的问题是,每个子表单都被设置为属于它的每个元素的父级。这会更改元素的名称,fename="username"
变为name="subformname[username]"
。
因为我使用子表单来代替显示组,所以我不需要它的额外功能。
如何禁用这种名称更改?
PS:我正在使用自定义函数来“批量处理”每个元素(琐碎的东西 - 删除装饰器,设置标签等),所以我能够强制setAttrib('name', $element -> getName())
,但事实证明这只适用于常规表单元素。它不适用于 ZendX 表单元素,如日期选择器、颜色选择器等。