使用Zend Form发布多维数组

时间:2011-10-18 09:51:19

标签: php zend-framework zend-form

我创建了一个zend表单,它能够使用如下元素生成子表单:items [0] [price],items [0] [count];物品[1] [价格]等 在表的每一行中,我需要显示某些数据。因此,在我看来,我创建了一个html表,并试图遍历'items'并在表的某列中插入某些表单元素。

<table>
<?php foreach($this->form->getSubform('items') as $item) :?>
  <tr>
    <td>just some data like product name</td>
    <td><?php echo $item->getElement('price');?></td>
    <td><?php echo $item->getElement('count');?></td>
  </tr>
<?php endforeach;?>
</table>

之后,每个表单元素项不再具有数组名称,正如我所期望的那样,但就像每行中的“items”或“count”一样,因此不会返回多维数组。

如果我在视图中生成表单(echo $this->form;),那么表单元素名称是可以的,但是我应该如何在表格中添加一些数据呢?最好是应该在视野中完成。

2 个答案:

答案 0 :(得分:1)

不要总是添加价格和数量的元素,因为你正在以动态方式生成字段,请尝试将它们命名为price1,count1,price2,count2,依此类推。然后,您可以使用新名称(附加计数)在表格中检索它们。

答案 1 :(得分:0)

使用PrepareElements装饰器预先填写表单装饰器堆栈。此装饰器将遍历您的表单并设置相应的belongsTo名称。