masterfermin02 / simple-data-grid
这是我编写的 simple-data-grid 包
v0.0.3
2024-01-06 03:44 UTC
Requires
- php: ^8.1
- ext-mysqli: *
Requires (Dev)
- laravel/pint: ^1.2
- phpunit/phpunit: ^9
README
Simple Data Grid 是一个 PHP 包,提供了一种简单的方法来从数据数组生成 HTML 表格。它支持自定义表头、行、CSS 类和表格属性。
安装
您可以通过 composer 安装此包
composer require masterfermin02/simple-data-grid
使用方法
以下是如何使用 Simple Data Grid 的基本示例
use Masterfermin02\SimpleDataGrid\SimpleGrid; $headers = ['Name', 'Email', 'Phone']; $rows = [ ['John Doe', 'john@example.com', '123-456-7890'], ['Jane Doe', 'jane@example.com', '098-765-4321'], ]; echo SimpleGrid::fromArray($headers, $rows)->render();
这将生成一个具有指定表头、行、CSS 类和表格属性的 HTML 表格。
MySQL 数据库支持
此示例假设您在本地主机上运行着一个名为 mydatabase
的数据库,其中包含一个名为 users
的表和 id
、name
、email
列。
<?php require __DIR__ . '/vendor/autoload.php'; use Masterfermin02\SimpleDataGrid\SimpleGrid; use Masterfermin02\SimpleDataGrid\Database\MysqlQuery; use Masterfermin02\SimpleDataGrid\Enums\DbTypes; $grid = SimpleGrid::fromDatabase( server: 'localhost', username: 'myuser', password: 'mypassword', databaseName: 'mydatabase', dbType: DbTypes::MYSQL, port: 3306, ) ->mysqlQuery( new MysqlQuery( table: 'users', columns: ['id', 'name', 'email'], ) ); echo $grid->render();
添加分页
<?php $grid = SimpleGrid::fromArray( header: ['id', 'name', 'email'], rows: [ [1, 'John Doe', 'josh@estemail.com'], [2, 'John Doe2', 'josh2@estemail.com'], [3, 'John Doe3', 'josh3@estemail.com'], [4, 'John Doe4', 'josh4@estemail.com'], [1, 'John Doe', 'josh@estemail.com'], [2, 'John Doe2', 'josh2@estemail.com'], [3, 'John Doe3', 'josh3@estemail.com'], [4, 'John Doe4', 'josh4@estemail.com'], ], ) ->itemPerPage(3) ->currentPage( $_GET['page'] ?? 1 ); echo $grid->render(); echo (new PaginatorNav( $grid ))->render();
在此示例中,使用 SimpleGrid::fromDatabase
创建一个新的连接到 MySQL 数据库的 SimpleGrid
实例。然后使用 mysqlQuery
方法在 users
表上执行 SELECT 查询,选择 id
、name
和 email
列。最后调用 render
方法生成数据网格的 HTML。
截图
使用 Laravel 模型
<?php $grid = SimpleGrid::fromArray( header: ['id', 'name', 'email'], rows: User::select('id','name', 'email')->get(), ) ->itemPerPage(3) ->currentPage( $_GET['page'] ?? 1 ); echo $grid->render(); echo (new PaginatorNav( $grid ))->render();
使用 Laravel 查询构建器
<?php $grid = SimpleGrid::fromArray( header: ['id', 'name', 'email'], rows: DB::table('users')->select('id','name', 'email')->get(), ) ->itemPerPage(3) ->currentPage( $_GET['page'] ?? 1 ); echo $grid->render(); echo (new PaginatorNav( $grid ))->render();
使用 Laravel Eloquent 光标
<?php $grid = SimpleGrid::fromIterator( header: ['id', 'name', 'email'], rows: User::select('id','name', 'email')->cursor(), ) ->itemPerPage(3) ->currentPage( $_GET['page'] ?? 1 ); echo $grid->render(); echo (new PaginatorNav( $grid ))->render();
测试
composer test
变更日志
请参阅 变更日志 了解最近的变化。
贡献
请参阅 贡献指南 了解详细信息。
安全漏洞
请查阅 我们的安全策略 了解如何报告安全漏洞。
致谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。
This `README.md` provides a brief description of the package, installation instructions, a usage example, and links to other important documents like the changelog, contributing guidelines, and license.