将HTML标记添加到ZendFramework 2字段集中的元素

时间:2014-04-13 11:49:41

标签: zend-framework2 zend-form

我确定我错过了一些明显的东西,但我现在已经敲了一会儿。

我想要做的很简单。说,我想要一个可以容纳许多物品的购物车,用ZF2表格表示。我为购物车创建一个表单,然后为项目创建一个字段集类,然后将该项目字段集放在表单元素集合中。

这一切都很好,但我想用HTML标记包装item fieldset的各个元素。把div放在他们周围,把它们放在桌子里,无论如何。

对于我的生活,我无法弄清楚如何做到这一点。在我的视图中,我可以遍历集合以一次一个地获取项目字段集,然后遍历字段集以显式回显单个项目字段集元素,由我想要的任何HTML标记包装。

但是没有处理模板,我使用模板创建其他项目,模板没有来自视图模板的HTML标记。

我原本以为会有一些方法告诉item fieldset本身如何呈现自己 - 有点像使用" partial"查看模板,其工作方式与页面视图模板相同,显式回显每个项目fieldset元素并放置其他任何标记 - 但此部分视图应附加到项目字段集本身并为集合中的每个字段集呈现(并且模板)。

有没有一种显而易见的方法可以解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

form view helpers使用您的表单和字段集来呈现正确的HTML标记。

您需要创建一个自定义(只是扩展)Zend\Form\View\Helper\FormCollection,并根据您的需求,也可以创建一个自定义Zend\Form\View\Helper\FormRow,然后将其附加到该自定义render()

如果您查看the code for the form collection,您会看到他们使用您自己描述的相同方法生成HTML,但它已经为您完成了;您只需要修改所需的位,例如$wrapper方法或$templateWrapper或{{1}}等属性。