zfstarter / zfs-grid
Requires
- php: >=5.3.23
- zendframework/zend-view: 2.3.*
This package is not auto-updated.
Last update: 2024-09-24 06:40:32 UTC
README
以表格形式展示数据和模型。
连接
模型可以在通过编译器连接库后立即使用。要使用视图助手(ViewHelper),需要在您的 application.config.php
文件中的 service_manager
和 listeners
分支中添加以下内容
'service_manager' => array( 'invokables' => array( 'ZFS\Grid\View\Helper\Configurator' => 'ZFS\Grid\View\Helper\Configurator' ) ), 'listeners' => array( 'ZFS\Grid\View\Helper\Configurator' )
如果需要,可以选择任何其他键。要使用任意视图助手,可以将其连接到 ViewHelperManager
$serviceLocator ->get('ViewHelperManager') ->setInvokableClass('gridRowValue', 'ZFS\Grid\View\Helper\GridRowValue');
使用方法
要在表格形式中显示数据,需要以下内容
- 数据本身
$users = array( array( 'id' => 1, 'login' => 'Vasia', 'email' => 'vasia@pupkin.com', 'status' => '0', ), array( 'id' => 2, 'login' => 'Fedia', 'email' => 'Fedia@nepupkin.com', 'status' => '1', ) );
- “网格”模型
$grid = new GridModel();
- 设置网格数据
$grid->setRows($users);
- 设置网格列集。参数 name 是列的系统名称,fieldName 是用于选择和替换单元格的参数名/键,title 是列标题
$grid->setColumns( array( new ColumnModel(array( 'name' => 'id', 'fieldName' => 'id', 'title' => 'ID', )), new ColumnModel(array( 'name' => 'login', 'fieldName' => 'login', 'title' => 'Login', )), new ColumnModel(array( 'name' => 'email', 'fieldName' => 'email', 'title' => 'E-mail', )) ) );
- 将网格传递到视图中
// представим, что находимся в контроллере return new ViewModel(array('grid' => $grid));
- 使用 Grid ViewHelper 在模板中显示表格
<?php echo $this->grid($grid); ?>
或者手动显示表格,如果您故意没有连接 ViewHelper。
GridModel 和 ColumnModel 参数
可以通过 get* 和 set* 方法设置 ColumnModel 的所有参数
$column = new ColumnModel(); $column->setName('name'); $column->setFieldName('name'); $column->setTitle('User name');
ColumnModel 的完整参数集
-
name - 列的系统名称;
-
fieldName - 用于选择和替换单元格的参数名/键;
-
title - 列标题;
-
formatter - callback,其结果用作单元格的值。在从行中获取值后由 GridRowValue 视图助手调用。仅在 ColumnModel 中存在此参数时调用。函数签名:
function ($valueFromRowCell, $wholeRow, $currentColumn) {}
; -
id - 用于替换
<th>
标签的<thead>
和<tfoot>
的id
属性的字符串; -
css - 用于替换
<th>
标签的<thead>
和<tfoot>
的class
属性的字符串; -
style - 用于替换
<th>
标签的<thead>
和<tfoot>
的style
属性的字符串;
GridModel 也有类似参数
- id - 用于替换
<table>
标签的id
属性的字符串; - css - 用于替换
<table>
标签的class
属性的字符串; - style - 用于替换
<table>
标签的style
属性的字符串;
ColumnModel 和 GridModel 都可以通过魔术 __get
和 __set
方法设置任意参数,以便在视图模板中手动处理。
视图助手
库中实现了以下视图助手
- grid - 使用 id、css、style 参数显示标准表格;
- gridHeader - 显示
<thead>
块; - gridHeaderRow - 显示标题行:
<tr><th>...</th></tr>
; - gridHeaderCell - 显示标题行单元格:
<th>..</th>
; - gridBody - 显示
<tbody>
块; - gridBodyRow - 显示主体行:
<tr><td>...<td></tr>
; - gridBodyCell - 显示主体行单元格:
<td>...</td>
; - gridFooter - 显示
<tfoot>
块; - gridFooterRow - 显示页脚行:
<tr><th>...</th></tr>
; - gridFooterCell - 显示页脚行单元格:
<th>..</th>
; - gridRowValue - 显示数据行单元格的值。
要显示标准表格,只需使用 grid
<?php echo $this->grid($grid); ?>
如果您不需要页脚,例如,可以使用以下视图助手:gridHeader
、gridBody
。
<?php echo $this->grid()->openTag($grid); ?> <?php echo $this->gridHeader($grid); ?> <?php echo $this->gridBody($grid); ?> <?php echo $this->grid()->closeTag(); ?>
与 Zend\Form 视图助手完全类似。
许可证
MIT