我创建了一个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;
),那么表单元素名称是可以的,但是我应该如何在表格中添加一些数据呢?最好是应该在视野中完成。
答案 0 :(得分:1)
不要总是添加价格和数量的元素,因为你正在以动态方式生成字段,请尝试将它们命名为price1,count1,price2,count2,依此类推。然后,您可以使用新名称(附加计数)在表格中检索它们。
答案 1 :(得分:0)
使用PrepareElements装饰器预先填写表单装饰器堆栈。此装饰器将遍历您的表单并设置相应的belongsTo名称。