1

我目前在实现包含二维元素数组的 Zend_Form/SubForm 时遇到问题。

我有一些从数据库查询返回的数据,我想在编辑表单中使用,我正在寻找我的表单来输出带有多维数组表示法作为名称的 HTML 输入标签,以便返回的数据在发布时是一个二维数组,以便于处理。

示例预期输出:

<input type="text" name="data[1][val] value="1">
<input type="text" name="data[1][str] value="asdf">
<input type="text" name="data[2][val] value="2">
<input type="text" name="data[2][str] value="fdsa">

在我使用子表单的试验期间,我已经能够完成以下输出,但是我的第一对括号似乎总是被过滤掉了,我只剩下:

<input type="text" name="data1[val] value="1">
<input type="text" name="data1[str] value="asdf">
<input type="text" name="data2[val] value="2">
<input type="text" name="data2[str] value="fdsa">

在我的多次搜索中,我已经能够找到很多关于如何完成一维数组表示法的文档,但是对于二维数组表示法却一无所知。

4

2 回答 2

0

表单的 setIsArray 应设置为 true
$subform1->setIsArray(true);
$subform2->setIsArray(true);
,然后可以使用 setElementsBelongto,因为
$subform1->setElementsBelongTo('data[1]');
$subform2->setElementsBelongTo('data[2]');
我希望这能给您一些想法。

于 2012-11-26T11:38:06.357 回答
0

好吧,显然您有一个名为 data1 的子表单,对吗?有两个元素,一个名为“val”的元素和另一个名为“str”的元素,试试这个,但不确定它是否会起作用:

$elementVal->setIsArray(true);

这将为数组“data1”添加另一个维度,但我无法为其指定名称,因此它看起来像“data1[val][]”

于 2012-10-22T20:02:41.763 回答