Iva*_*ylo 24 php dojo zend-framework2 dgrid zend-form2
对于我们的新项目,我们已经开始使用Zend Framework 2和Dojo 1.8.ZF2有一个完全重写的表单模块,现在它具有用于一对多关系的新CollectionElement.关于UI我发现,dgrid最适合这种关系(使用编辑器列插件),所以我开始扩展FormCollection,FormRow和FormElement视图助手,这样他们就可以渲染所需的dgrid.一切都很好,直到我意识到,我不能为dgrid小部件设置每行输入名称.
我开始使用ZF2文档来修复表单集合.可以看到,集合输入元素具有类似数组的名称
order[products][0][name]
order[products][0][price]
order[products][1][name]
order[products][1][price]
Run Code Online (Sandbox Code Playgroud)
另一方面,dgrid的配置是基于列的,所以我可以有一个列定义
editor({
field: "_dojo_textbox_505ee3a390d705_26717315",
label: "Name",
editorArgs: {
name: "order[products][{index}][name]",
}
}, TextBox)
Run Code Online (Sandbox Code Playgroud)
此列定义将为所有行定义相同的窗口小部件名称,这不适用于ZF2集合数据格式要求.
我也尝试过这样命名列:
order[products][]
Run Code Online (Sandbox Code Playgroud)
哪个有效,但不允许所需的格式
order[products][][name]
Run Code Online (Sandbox Code Playgroud)
也许有办法发布这样的数据:
order[products][name][]
Run Code Online (Sandbox Code Playgroud)
然后让它转换,但解决方案看起来不正确.除此之外,我试图生成可重用的代码,并希望避免每个表单的数据修改.
由于我非常努力避免onSubmit/onClick事件处理进行数据转换,因此有两种可能的解决方案:1.使dgrid能够设置每行小部件名称2.使ZF2表单理解一些非标准的POST格式集合
不幸的是,我没有想法,这些解决方案是如何完成的,所以如果你能帮我解决这个问题,我将非常感激!
由于这与我当前的问题有些相关,我将把它放在这里作为一个附带问题:除了这个UI解决方案,你还使用什么来实现与dojo的一对多表单接口?