Zend framework 如何验证和呈现动态可扩展的zend表单

Zend framework 如何验证和呈现动态可扩展的zend表单,zend-framework,zend-form,Zend Framework,Zend Form,我需要动态扩展zend表单的帮助 我有一个带有子窗体的窗体,它包含两个元素: <form> <fieldset class="itemGroup"> <label> Question <input type="text" name="items[questions][]" value=""> </label> <label> Answer <

我需要动态扩展zend表单的帮助

我有一个带有子窗体的窗体,它包含两个元素:

<form>
  <fieldset class="itemGroup">
    <label>
      Question
      <input type="text"  name="items[questions][]" value="">
    </label>
    <label>
      Answer
      <input type="text"  name="items[answers][]" value="">
    </label>
  </fieldset>
</form>
如果需要,我只需通过javascript复制扩展表单的所有字段集

在我提交表格之前,一切正常。在验证期间,没有验证任何元素,并且在呈现表单(由此类数据填充)期间,我从类Zend_View_Abstract获得错误消息,转义值是数组而不是字符串(在呈现元素以转义其值时调用此方法)

对于compltion,如果调用$form->getValues();在验证之后,(通过javascript添加了另一个字段集),我得到以下结果:

Array
(
    [items] => Array
        (
            [questions] => Array
            (
                [0] => lorem
                [1] => dolor
            )

            [answers] => Array
            (
                [0] => ipsum
                [1] => sit
            )

        )

)

有人能建议我如何表现出良好的状态吗?理想的解决方案是表单本身分别验证每个值,并找出他应该呈现fieldset(displayGroup)的次数。

首先,您的元素无法验证,因为您设置了
isArray=>TRUE
,并且您选择的验证程序计算字符串。

接下来,我认为填充表单可能是因为您需要提供数据以填充表单生成的同一多维数组(数组应一一映射)。

下面的链接是一个如何动态构建表单的示例,您应该能够使用它作为模板来生成一个满足您需要的表单

Array
(
    [items] => Array
        (
            [questions] => Array
            (
                [0] => lorem
                [1] => dolor
            )

            [answers] => Array
            (
                [0] => ipsum
                [1] => sit
            )

        )

)