roarbb / datagrid
datagrid 是一个具有一些配置选项的数据渲染器
dev-master
2015-01-25 03:04 UTC
Requires
- guzzlehttp/guzzle: 5.0.*@dev
- latte/latte: ~2.2
- nette/utils: ~2.2
- phpmd/phpmd: @stable
- squizlabs/php_codesniffer: 2.*
- tracy/tracy: ~2.2
Requires (Dev)
- fzaninotto/faker: 1.5.*@dev
- phpspec/phpspec: ~2.0
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}');