【发布时间】:2013-08-27 12:49:24
【问题描述】:
我在一个项目中使用 Zend Framework 1.12。我对Zend_Form 有一些问题。有些字段是在执行时动态生成的,但Zend_Form 是静态的,是在创建时预定义的元素。
因此,发送表单时,验证不起作用,因为添加了新字段并且发送的表单与创建的表单不匹配。
如何适应?
【问题讨论】:
-
您能解释一下“某些字段是在执行时动态生成的”是什么意思吗?从我的角度来看,这些表单元素是在控制器中创建的,并在验证发生之前添加到表单中。所以,这应该有效。您能否在验证之前检查您是否正在创建和添加元素?
-
表单元素在控制器上实例化,然后添加到视图中。我在表单上有一个 Zend_Form_Element_Select,最初是空的。数据由用户在同一表单上创建。因此,每次用户创建新注册表时,都会完成 Ajax 调用并将新注册表附加到此选择输入上。 Zend_Form_Element_Select,最初是空的,发送的属性比创建时更多。因此,验证方法不起作用,因为表单不匹配。
-
好吧,您不应该将它们发送到视图。您应该将它们添加到表单中。然后将表单发送到视图。这就是它应该如何工作的方式。
-
我遇到了同样的问题,即在运行时动态添加到表单的字段在表单本身中找不到(例如调用 $form get Values() 函数)。但是,我没有看到 Zend_Form 像您上面所说的那样定义为静态的。那为什么会这样呢?
标签: zend-framework zend-form-element