Zend框架多维表格数组

Jay*_*att 1 php zend-framework zend-form

我需要使用zend框架创建一个多维数组表单.当我发布表单时,我应该能够得到以下结果作为帖子.

Array
(
    [Address] => Array
        (
            [customer] => Array
                (
                    [name] => Customer Name
                )

            [guest] => Array
                (
                    [name] => Guest Name
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法得到上述结果.到目前为止,我得到的结果是这个.

Array
(
     [customer_name] => Customer Name
     [guest_name] => Guest Name
)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是Zend_Form是否支持多维表格数组?如果有,怎么样?

提前致谢...

JoD*_*Dev 5

这个问题不是关于ZF,而是关于<form>系统.要检索多维表单数组,必须提供良好的名称属性.

在ZF中,要操纵名称,您可以使用:

$form->myelement->setAttrib('name', 'myname'); 要么 $form->myelement->setName('myname');

要做到你期望的,你必须使用命名形式,如:

$form->element1->setName('[address][customer][name]');
$form->element2->setName('[address][guest][name]');
Run Code Online (Sandbox Code Playgroud)

通过此命名,您将能够在多维数组中检索POST数据.

使用子表单,您只能操作第一个维度.所以元素的命名形式如下:

$subform1->setName('customer');
$subform1->element1->setName('[address][name]');
[...]//do it for each element

$subform2->setName('guest');
$subform2->element1->setName('[address][name]');
[...]//do it for each element
Run Code Online (Sandbox Code Playgroud)