Zend framework 除了多页表单之外,使用Zend_Form_子表单的一些实际原因是什么?

Zend framework 除了多页表单之外,使用Zend_Form_子表单的一些实际原因是什么?,zend-framework,Zend Framework,我已经阅读了ZF文档中关于子表单的内容,除了用于多页表单之外,我不确定是应该使用zend_form_子表单,还是只使用一个更大的子表单来合并表单的所有元素。假设我有一个表单来创建一个用户对象,并且有几个不同的字段集,例如联系人信息、个人信息和帐户选项。这是子窗体的一个很好的候选者吗?或者我会使事情过于复杂?子表单非常适合重复一组元素,例如一组发票行,或客户的发货和发票地址。 它们也适用于多页表单,其中每个页面显示一个子表单。您还可以使用它根据元素所表示的内容对多个元素进行逻辑分组。只提取表单值的

我已经阅读了ZF文档中关于子表单的内容,除了用于多页表单之外,我不确定是应该使用zend_form_子表单,还是只使用一个更大的子表单来合并表单的所有元素。假设我有一个表单来创建一个用户对象,并且有几个不同的字段集,例如联系人信息、个人信息和帐户选项。这是子窗体的一个很好的候选者吗?或者我会使事情过于复杂?

子表单非常适合重复一组元素,例如一组发票行,或客户的发货和发票地址。 它们也适用于多页表单,其中每个页面显示一个子表单。您还可以使用它根据元素所表示的内容对多个元素进行逻辑分组。只提取表单值的一部分(例如,仅提取联系人信息)会容易得多

简言之;如果表单变大或变复杂,最好将其分为子表单。

子表单的关键参数(对我来说也是唯一的参数)是验证。您可以单独验证子窗体,最后验证整个窗体

如果您有类似的元素,您可以轻松地在表单类中创建一个函数,返回带有预设设置的元素,甚至可以创建自己的元素类。如果要对元素进行分组,也可以执行相同的操作,即创建函数或类,但返回一个displayGroup,因为它创建了要在HTML中显示的字段集