roarbb / datagrid

datagrid 是一个具有一些配置选项的数据渲染器

dev-master 2015-01-25 03:04 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:04:48 UTC


README

datagrid 是一个 PHP 组件,可以从一组数据创建表格。

实时示例

在此: http://datagrid.sajgal.com

安装

推荐通过 Composer 安装 Datagrid。

# Install Composer
curl -sS https://getcomposer.org/installer | php

接下来,运行 Composer 命令安装 Datagrid 的最新稳定版本

composer require roarbb/datagrid

安装后,您需要包含 Composer 的自动加载器

require 'vendor/autoload.php';

基本用法

让我们有一些数据数组

$data = array(
    'row1' => array(
        'name' => 'Tyree',
        'surname' => 'Schmidt',
        'age' => '35',
        'position' => 'Developer',
        'pin' => '7366',
    ),
    'row2' => array(
        'name' => 'Cleve',
        'surname' => 'Streich',
        'age' => '38',
        'position' => 'Management',
        'pin' => '7290',
    ),
    'row3' => array(
        'name' => 'Mossie',
        'surname' => 'Lesch',
        'age' => '41',
        'position' => 'Sales',
        'pin' => '6521',
    ),
    'row4' => array(
        'name' => 'Kayla',
        'surname' => 'Paucek',
        'age' => '21',
        'position' => 'Developer',
        'pin' => '9478',
    ),
    'row5' => array(
        'name' => 'Elva',
        'surname' => 'Haley',
        'age' => '17',
        'position' => 'Management',
        'pin' => '4532',
    ),
);

datagrid 的基本实现

$datagrid = new Datagrid();
$datagrid->setData($data);

然后在模板文件中

<h1>Datagrid</h1>
<?php echo $datagrid ?>

更多选项

JSON 源

如果您想从有效的 JSON REST API 响应构建表格

$datagrid->setDataUrl('http://datagrid.sajgal.com/?getJson');

表格 HTML 类属性

如果您使用 Bootstrap,可能需要将 CSS 类设置为 Datagrid。

$datagrid->setTableClass('table');

标题行

您可以为 Datagrid 设置标题行。传递给参数的数组元素的数量应与 $data 变量中每个行元素的项数匹配。

$datagrid->addHeader(['First name', 'Surname', 'Age', 'Position', 'PIN Code']);

排序

如果您想启用 Datagrid 行的排序

$datagrid->isSortable();

隐藏列

如果您想隐藏一些包含敏感内容的列

$datagrid->hideColumns(['pin']);

分页

您还可以启用分页。您应该传递 每页行数 整数作为第一个参数。

$datagrid->setPagination(10);

操作按钮

如果您想在每行的末尾添加一些按钮。您可以使用占位符:{name} 将被翻译为 Tyree 等。

$datagrid->addAction('Delete Row', 'http://datagrid.sajgal.com/delete/{name}');