разместить многомерный массив с Zend Form - PullRequest
1 голос
/ 18 октября 2011

я создал Zend-форму, которая может генерировать подчиненную форму с такими элементами, как: items [0] [price], items [0] [count]; предметы [1] [цена] и т. д. в каждой строке таблицы мне нужно отобразить определенные данные. Итак, на мой взгляд, я создал HTML-таблицу и попытался перебрать «элементы» и вставить определенный элемент формы в определенный столбец таблицы.

<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 ]

1 голос
/ 22 октября 2011

Вместо добавления элементов всегда с ценой и количеством, поскольку вы динамически генерируете поле, попробуйте назвать их price1, count1, price2, count2 и так далее.Затем вы можете получить их в своей таблице, используя их новое имя (с добавленным счетчиком).

0 голосов
/ 10 января 2012

Добавьте ваш стек декоратора формы с помощью декоратора PrepareElements.Этот декоратор будет перебирать вашу форму и устанавливать соответствующие имена принадлежащие.

...