Есть ли Zend Helper для генерации таблицы Html и использования массива в качестве входных данных?
partialLoop()
, вероятно, лучше, если вам нужен легкий, легко настраиваемый генератор таблицы. Если вам нужно что-то еще, чтобы принять все, кроме бизнес-логики генерации отчетов в Zend, посмотрите на zfdatagrid .
Больше всего я использую partialLoop () для генерации таблиц. Но иногда для простых данных, которые не требуют форматирования, я использую мой простой помощник вида: https://gist.github.com/812481 . Применение:
<?php echo $this->table()->setRows($rows); ?>
или…
<?php echo $this->table(null, $rows); ?>
$ Rows может быть ассоциативным массивом или любым объектом, который имеет метод toArray (Zend_Db_Table_Rowset, Doctrine_Collection и т. Д.). Ниже приведен более сложный пример: с заголовками, заголовком, дополнительной колонкой:
echo $this->table() ->setCaption('List of something') ->setAttributes(array('class' => 'mytable', 'id' => 'currenciesList')) ->setColumns(array( 'currency' => 'Currency', 'rate' => 'Rate', 'edit_options' => '' // Custom column )) // content for custom column. ->setCellContent( '<a href="/currency/delete/{id}" class="deleteLink">Delete</a>', 'edit_options' ) ->setFooter('Something to write in footer...') ->setEmptyRowContent('Nothing found') ->setRows($rows);
Но этот подход не так удобен, как partialLoop, потому что он принимает входные данные и отображает их как есть – он не позволяет вам форматировать значения с помощью Zend_Date, Zend_Currency или делать форматирование пользовательских ячеек.
Не существует встроенного помощника по представлению таблицы zend. Однако вы можете использовать вспомогательный помощник partialLoop, чтобы упростить создание таблиц.
Вы также можете использовать пакет HTML_Table PEAR. Вы можете бросить массив в класс таблицы, и он собирается заполнить таблицу для вас. Он имеет несколько приятных функций, таких как раскраска нечетных и четных линий, задание параметров для каждой строки, столбцов и тела таблицы.
Найдите дополнительную информацию по адресу http://pear.php.net/package/HTML_Table/docs/latest/HTML_Table/HTML_Table.html.