zfstarter/zfs-grid

1.0 2014-06-11 17:14 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:40:32 UTC


README

以表格形式展示数据和模型。

连接

模型可以在通过编译器连接库后立即使用。要使用视图助手(ViewHelper),需要在您的 application.config.php 文件中的 service_managerlisteners 分支中添加以下内容

'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');

使用方法

要在表格形式中显示数据,需要以下内容

  1. 数据本身
$users = array(
    array(
        'id'     => 1,
        'login'  => 'Vasia',
        'email'  => 'vasia@pupkin.com',
        'status' => '0',
    ),
    array(
        'id'     => 2,
        'login'  => 'Fedia',
        'email'  => 'Fedia@nepupkin.com',
        'status' => '1',
    )
);
  1. “网格”模型
$grid = new GridModel();
  1. 设置网格数据
$grid->setRows($users);
  1. 设置网格列集。参数 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',
        ))
    )
);
  1. 将网格传递到视图中
// представим, что находимся в контроллере
return new ViewModel(array('grid' => $grid));
  1. 使用 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); ?>

如果您不需要页脚,例如,可以使用以下视图助手:gridHeadergridBody

<?php echo $this->grid()->openTag($grid); ?>
<?php echo $this->gridHeader($grid); ?>
<?php echo $this->gridBody($grid); ?>
<?php echo $this->grid()->closeTag(); ?>

与 Zend\Form 视图助手完全类似。

许可证

MIT